Este artículo utiliza un caso real —el proceso completo de nacimiento de la skill «Chequeo SEO»— para resumir el trabajo necesario, los comandos utilizados y los errores cometidos al crear un SKILL. Está dirigido a quienes desean consolidar sus flujos de trabajo repetitivos en skills reutilizables.
I. Qué es un SKILL y por qué crearlo
Un SKILL es un paquete de capacidades reutilizable que consolida un conjunto deflujos de trabajo de varios pasos. Se configura una vez y, a partir de entonces, una sola frase activa todo el proceso, sin necesidad de explicarlo de nuevo cada vez.
Un SKILL es esencialmente una carpeta:
skill-name/
├── SKILL.md ← 核心:流程说明 + 触发词 + 输入 + 经验
├── scripts/ ← 可选:可复用的代码脚本
│ └── *.py
└── evals/ ← 可选:测试用例
└── evals.json
Señales de que algo es apto para convertirse en SKILL: haces esto de forma repetida, tiene ≥2 pasos, produce un resultado claro y sigue siendo útil al cambiar de objeto (URL/cliente/proyecto).
II. Flujo general para crear un SKILL (5 pasos)
La creación de habilidades también cuenta con una "meta-habilidad" que guía el proceso. Lo esencial son estos 5 pasos:
| Paso | Qué hacer | Comandos/herramientas utilizados |
|---|---|---|
| 1. Ejecutar el flujo de trabajo completo una vez | Realizar una tarea real de principio a fin, generando un resultado real | Basta con una conversación normal |
| 2. Confirmar el esqueleto de la habilidad | Definir nombre de la skill, nombre visible, palabras de activación, entradas, icono | Confirmar con la IA |
| 3. Extraer datos de la conversación | Extraer automáticamente las herramientas usadas y generar el esqueleto | extract_session_data |
| 4. Escribir SKILL.md | Completar el flujo, la experiencia y los scripts | Generado por IA, revisado por humanos |
| 5. Guardar + probar | Guardar en la biblioteca de skills y generar casos de prueba | save_skill + generate_skill_evals |
Tres, desglose paso a paso: qué hace concretamente cada paso
Paso 1: primero valida el flujo de trabajo (lo más importante)
No te apresures a crear la skill. Primero realiza una tarea real de principio a fin, por ejemplo: "ayúdame a revisar el SEO de esta página web". Durante el proceso:
- Definirentradaqué es (¿una URL? ¿un lote de URLs?)
- Definirsalidaqué es (¿un informe? ¿en qué formato?)
- Registrar qué capacidad se usó en cada paso (abrir la página web, ejecutar código, generar Excel…)
Lección práctica: nuestra skill de SEO se destiló tras auditar de verdad múltiples páginas del sitio web oficial de una empresa y ajustar repetidamente el formato del informe. Durante el proceso el usuario planteó requisitos continuamente (añadir el estándar de Bing, verificar fuentes oficiales, cambiar a una matriz de ejecución, dividir en dos fases…), y todo ello se convirtió en la parte más valiosa de la skill.
Paso 2: confirmar el esqueleto de la skill
Explica claramente a la IA (o pídele que lo sugiera):
| Proyecto | Descripción | Ejemplo |
|---|---|---|
| Nombre de la skill | minúsculas con guiones, identificador interno | seo-audit-skill |
| Nombre visible | el nombre que ve la gente | «Auditoría SEO» |
| Palabras de activación | qué frases deben activarla | "Auditoría SEO / optimización web / revisión del SEO de página" |
| Campos de entrada | Lo que cambia cada vez | page_url、audit_scope |
| Icono | Un emoji | 🔍 |
Paso 3: Extraer datos de la sesión
Este paso lo hace la herramienta automáticamente: escanea la sesión que acabas de ejecutar con éxito, extrae la lista de herramientas usadas y genera un esqueleto de SKILL.md con YAML frontmatter. Tú solo aportas lo definido en el paso 2: nombre de la skill, palabras de activación, campos de entrada, nombre visible e icono.
Instrucción:extract_session_data
Paso 4: Escribir SKILL.md (creación central)
Sobre el esqueleto, completa las siguientes partes:
① frontmatter (cabecera del archivo)
---
name: seo-audit-skill
display_name: 「SEO 体检」
description: "一句话说清楚它做什么、什么时候该触发"
icon: "🔍"
trigger: SEO体检 audit 网站优化 网站SEO
inputs:
- name: page_url
description: "要体检的页面网址"
required: true
scripts: [seo_audit.py, seo_matrix.py]
---
② Overview
2–3 frases que expliquen qué hace y cuándo usarlo.
③ Workflow (por pasos)
Cada paso indica el modo (deterministic acción fija / agentic requiere juicio), entrada, salida, método de verificación y qué hacer si falla.Explica más el "por qué" y evita los rígidos "debe/prohibido"— la IA que ejecuta la skill responde mejor a "razonamientos".
④ Output
Define con claridad el formato del resultado final.
⑤ Lessons Learned (experiencia)
Esta es la línea divisoria de la calidad de una skill; se divide en cuatro bloques:
- Do: qué prácticas funcionan
- Don't: qué trampas evitar
- Common Failures: errores comunes + cómo responder
- When to Ask the User: cuándo detenerse y preguntar a una persona
Lección real: en Lessons de esta skill hay plagadas trampas realmente sufridas — no usar en chino\uXXXXescape, al escribir CSV usarutf-8-sigpara evitar caracteres corruptos en Excel, una tasa anormalmente alta de alt de imágenes faltantes suele ser un falso positivo por lazy loading (hay que marcar "pendiente de verificación" en lugar de declararlo faltante directamente), algunos dominios bloquean el scraping masivo y requieren verificación con navegador… Estas "lágrimas de sangre" hacen que la skill funcione con más estabilidad la próxima vez.
⑥ Scripts (opcional pero muy recomendado)
Si en el flujo hay código que se escribe repetidamente, extráelo como script y colócalo en scripts/, y se referencia en SKILL.md. Convertimos el "JS de recopilación de señales de página" y la "generación de matrices multipágina" en dos scripts para garantizar que el formato de salida sea consistente en cada ejecución.
Paso 5: Guardar + probar
- Instrucción de guardado:
save_skill(nombre de la skill + SKILL.md completo + scripts) - Generar pruebas:
generate_skill_evals(crear automáticamente algunos casos de prueba) - Luegoejecutar una vez de verdadpara validar — probamos en dos escenarios, página única y multipágina, y confirmamos que detecta problemas reales (por ejemplo, identificar varios enlaces roto 404, detectar que el título para compartir en redes no coincide con el título de la página).
IV. Cómo iterar y distribuir tras la creación
Mejora iterativa
Instrucción:load_skill_for_improvement. Una skill no se forma de una sola vez. Tras usarla varias veces, mejora según necesidad:
- cambiar el flujo, añadir formatos de salida, ajustar palabras de activación
- Al guardar,usa el mismo nombre de skillpara sobrescribir en el mismo lugar (se respalda automáticamente la versión anterior)
En la práctica: esta skill ha pasado por muchas rondas de iteración — añadir el estándar de Bing, cambiar el formato de la matriz de ejecución, dividir en dos fases, añadir doble salida Excel+Markdown, corregir la alineación de nombres de columna con los ejemplos, y finalmente cambiar el nombre. Cada ronda fueload_skill_for_improvement→ modificar →save_skillsobrescribir.
Renombrar
Cambia el name y display_nameen el frontmatter, usa el nuevo nombre save_skill, y luego elimina la carpeta de la skill antigua.
Empaquetar y distribuir
Comprime toda la carpeta de la skill en un zip para respaldarla, migrarla a otro ordenador o compartirla con colegas (colócala en su directorio skills).
Portar entre herramientas
Si quieres usarla en otra herramienta de IA (ChatGPT/Claude/Gemini), necesitas "desplatformizarla": reescribir los nombres de herramientas propietarias como descripciones de capacidades genéricas ("abrir página web", "ejecutar código"), e incrustar los scripts como Markdown autocontenido, para poder pegarlo entero como system prompt/instrucciones personalizadas.
V. Referencia rápida de instrucciones comunes
| Instrucción | Función | Se usa en |
|---|---|---|
extract_session_data | Extraer el esqueleto de la conversación | Crear · Paso 3 |
save_skill | Guardar/Sobrescribir skill | Crear · Paso 5 / Iteración |
generate_skill_evals | Generar casos de prueba | Crear · Paso 5 |
load_skill_for_improvement | Cargar skill para mejorar | Iterar |
VI. Lista de errores a evitar (basada en errores reales)
- Primero hazlo funcionar, luego fíjalo— No escribas skills de la nada.
- En la entrada solo pon lo que cambia— Los valores fijos codifícalos en el flujo.
- Lessons Learned debe llenarse con experiencia real— Esta es la clave de si un skill puede "volverse más estable cuanto más se usa".
- Extrae el código repetido en scripts— Garantiza un formato de salida consistente y ahorra tokens.
- Obligatorio probar tras guardar— Ejecuta realmente una página única + varias páginas para verificar que identifica problemas reales.
- Trampa de codificación(si implica chino/generación de código): para escribir archivos usa
encoding="utf-8", para CSV usautf-8-sig, no uses\uXXXXescape, para PDF en chino usa la fuente CID integrada. - Iterar sobrescribiendo con el mismo nombre——
namesin cambios, respalda automáticamente la versión anterior.
Conclusión
La esencia de crear un SKILL es:empaquetar un flujo de trabajo exitoso, junto con sus juicios y lecciones, en una capacidad de "repetirlo la próxima vez con una sola frase". Un skill bien hecho no solo registra los pasos, sino también la experiencia de "cómo hacer esto correctamente".
Primero haz las cosas bien, luego hazlas reutilizables — esa es toda la esencia de crear un SKILL.