~/codigoagente
Agentes de IA

skill-creator: la skill de Anthropic para crear y probar tus propias skills en Claude Code

skill-creator es la skill del repositorio oficial de Anthropic que sirve para crear skills de Claude Code, probarlas y mejorarlas con datos en lugar de a ojo. Le describes un procedimiento que repites ("cotizar los pedidos que me llegan por WhatsApp", "revisar facturas", "preparar el informe del lunes") y Claude escribe el SKILL.md, inventa prompts de prueba, compara el resultado con y sin la skill y, al final, reescribe la description para que la skill se active cuando toca y solo entonces.

En el repaso de las 19 skills oficiales de Anthropic la llamamos "la joya escondida del repo". Aquí la pusimos a trabajar en un caso de negocio pequeño: una skill que convierte un pedido informal de WhatsApp en una cotización con IVA del 15 % de Ecuador. skill-creator la escribió en 33 segundos por 0,13 USD, la skill pasó la prueba que la versión sin skill falló, y por el camino encontramos un fallo en su script de activación que te puede llevar a "arreglar" una skill que ya funciona.

Las 4 fases de skill-creator: entender y redactar, probar con y sin skill, revisar y medir con un visor HTML, y afinar la activación con 20 consultas, con el aviso de que run_eval en paralelo da falsos fallos
El ciclo que sigue la skill, según su SKILL.md · codigoagente

Qué es una skill y por qué crear la tuya

Una skill es una carpeta con un SKILL.md (nombre, descripción e instrucciones) y, si hace falta, scripts, plantillas o documentación. Claude Code solo lee el nombre y la descripción de cada skill al arrancar; cuando una tarea encaja, carga el resto. Si nunca has instalado una, empieza por qué son las skills de Claude Code y cómo instalarlas.

Las skills de otros resuelven problemas de otros. Las que más rinden son las tuyas: el formato de cotización de tu negocio, tus reglas de commits, los pasos para publicar en tu blog. El problema es que escribir una buena skill tiene dos trampas que no se ven a simple vista:

  1. Que haga lo que dices. Sin una comparación, no sabes si la skill mejora algo o si Claude lo habría hecho igual sin ella.
  2. Que se active. Si la description es vaga, Claude no la usa; si es demasiado amplia, salta donde no debe.

skill-creator ataca las dos con un método y unos scripts.

Qué trae la skill skill-creator

Vive en skills/skill-creator de anthropics/skills (commit 2c5958e, del 6 de noviembre de 2026) y tiene licencia Apache-2.0: puedes usarla, adaptarla y redistribuirla conservando el aviso de licencia. Son 5.654 líneas:

ArchivoQué hace
`SKILL.md`El proceso completo: entrevista, redacción, pruebas, revisión, mejora y optimización de la descripción. 485 líneas.
`agents/grader.md`, `comparator.md`, `analyzer.md`Instrucciones para subagentes que califican resultados, comparan dos versiones a ciegas y explican por qué ganó una.
`scripts/quick_validate.py`Comprueba que el `SKILL.md` tiene un frontmatter válido.
`scripts/aggregate_benchmark.py`Junta las calificaciones en un `benchmark.json` con media, desviación y diferencia entre versiones.
`eval-viewer/generate_review.py`Genera el visor HTML donde revisas las salidas y dejas comentarios.
`scripts/run_eval.py`, `improve_description.py`, `run_loop.py`Miden si la descripción activa la skill y la reescriben en bucle.
`scripts/package_skill.py`Empaqueta la skill en un `.skill` (un zip) sin la carpeta `evals/`.

Necesitas Python 3 con PyYAML (para quick_validate.py) y la CLI claude: los scripts de activación lanzan claude -p como subproceso, así que solo funcionan en Claude Code, no en claude.ai.

Instalar skill-creator en Claude Code

Con la CLI de skills.sh, solo esta skill:

terminalsh
npx skills add anthropics/skills --skill skill-creator --agent claude-code -y

O con el plugin example-skills, que trae 12 skills de ejemplo, skill-creator incluida:

terminalsh
/plugin marketplace add anthropics/skills
/plugin install example-skills@anthropic-agent-skills

Nosotros copiamos la carpeta skills/skill-creator del repositorio a .claude/skills/skill-creator de un proyecto de prueba. Antes de copiar cualquier skill de terceros, pásala por SkillSpector: esta trae scripts que ejecutan claude y escriben en tu proyecto.

La prueba: una skill para cotizar pedidos de WhatsApp

Preparamos un precios.csv de una tienda de café con 5 productos (café molido 500 g a 6,50 USD, taza con logo a 4,25 USD, prensa francesa a 18,90 USD…) y le pedimos a Claude Code, con Sonnet 5.5:

snippettext
Usa la skill skill-creator. Quiero una skill llamada cotizacion-whatsapp:
cuando un cliente me escribe un pedido por WhatsApp (texto informal, con
faltas), la skill debe convertirlo en una cotización en Markdown usando la
lista de precios de precios.csv: tabla con producto, cantidad, precio
unitario y subtotal, luego subtotal, IVA 15% (Ecuador), total, y una línea
con los productos que no encontró en la lista. No me hagas preguntas: asume
lo razonable y anota tus supuestos. Crea también evals/evals.json con
3 prompts de prueba realistas.

En 33 segundos y 0,13 USD tenía:

  • Un SKILL.md de 54 líneas con 5 pasos (leer el CSV cada vez, extraer ítems, cruzarlos con la lista, calcular, escribir), un formato de salida fijo y un ejemplo resuelto.
  • Reglas sensatas que no le dimos: entender "media docena" y "una docena", no sustituir un producto que no existe ("cotizar algo que el cliente no pidió es peor que dejarlo fuera"), convertir 1 kg en 2 fundas de 500 g solo si la conversión es exacta y comprobar las cuentas con Python cuando hay muchos ítems.
  • Una description larga y "insistente", como pide la propia skill: además de qué hace, lista frases del usuario ("cotiza esto", "arma la proforma", "me escribió un cliente") para que Claude no se quede corto al activarla.
  • Un evals.json con 3 pedidos con faltas ("prenza francesa", "cafe moldio") y el total esperado de cada uno. Revisamos las cuentas a mano: las 3 estaban bien.

quick_validate.py la dio por buena a la primera:

terminalsh
python -m scripts.quick_validate ruta/a/cotizacion-whatsapp
# Skill is valid!

Con skill y sin skill

El corazón del método es comparar. Lanzamos el segundo prompt de prueba ("hola, me puede cotizar una prenza francesa, 2 paquetes de filtros de papel y una licuadora osterizer. ah y 1 kilo de cafe en grano") dos veces: en un proyecto con la skill y en otro sin ella.

Con la skillSin la skill
Productos bien identificados3 de 33 de 3
IVA 15 %Sí: 5,27 USDNo lo calculó
Total**40,37 USD**35,10 USD (sin impuestos)
Licuadora (no está en la lista)En "No encontrados"Como fila "sin precio" dentro de la tabla
FormatoSiempre el mismoInventado en cada respuesta, con un mensaje al cliente que nadie pidió
Coste y tiempo0,050 USD, 8,5 s0,042 USD, 6,8 s

Sin la skill, Claude hizo un trabajo correcto pero no el que necesitas: le faltó el IVA y el formato cambia cada vez. Esa es la diferencia que skill-creator te obliga a ver antes de dar la skill por terminada. Luego metimos las dos salidas en el visor de la skill:

terminalsh
python eval-viewer/generate_review.py workspace/iteration-1 \
  --skill-name cotizacion-whatsapp --static review.html
Visor de evaluación de skill-creator mostrando el prompt del cliente y la cotización generada con la skill: tabla de productos, subtotal 35,10 USD, IVA 15 % 5,27 USD, total 40,37 USD, licuadora en no encontrados y lista de supuestos
El visor de revisión con la salida "con skill"; con Next pasas a la salida sin skill · codigoagente

El visor tiene dos pestañas: Outputs, para ir prompt a prompt y escribir qué falla, y Benchmark, con aciertos, tiempo y tokens de cada versión. Al pulsar "Submit All Reviews" guarda un feedback.json que Claude lee para la siguiente iteración. Con --static genera un HTML suelto; sin él, levanta un servidor local en el puerto 3117.

Afinar la activación (y el fallo que encontramos)

La última fase mide si la description hace que Claude use la skill. Escribes consultas que deben activarla y consultas parecidas que no (subir precios del CSV, redactar un mensaje de cobro, preguntar cuánto IVA se paga), y run_eval.py lanza cada una con claude -p para ver si Claude llama a la skill:

terminalsh
python -m scripts.run_eval --eval-set trigger-evals.json \
  --skill-path ruta/a/cotizacion-whatsapp \
  --runs-per-query 2 --num-workers 1 --model claude-sonnet-5-5 --verbose

Hicimos 6 consultas (3 positivas, 3 trampas), 2 veces cada una. El resultado depende de un parámetro que no esperarías:

`--num-workers`Activaciones correctas en las 3 positivasFalsos positivos en las 3 trampasTiempo
1 (en serie)**6 de 6**0 de 660 s
6 (en paralelo)**1 de 6**0 de 623 s

La skill era la misma y la descripción también. La causa está en cómo mide run_eval.py: por cada consulta crea una copia temporal de la skill en .claude/commands/ con un sufijo aleatorio, y solo cuenta como acierto si Claude llama a su copia. En paralelo hay varias copias casi idénticas a la vez en la misma carpeta; Claude elige cualquiera, y si coge la de otro proceso cuenta como fallo. Lo comprobamos a mano: con una sola copia, Claude llamó a la skill en la primera acción.

El valor por defecto es --num-workers 10, y run_loop.py (el bucle que reescribe la descripción) usa el mismo valor. Con ese valor, el bucle "mejoraría" una descripción que ya funciona persiguiendo fallos que no existen. Usa --num-workers 1: tarda más, pero mide de verdad.

Dos detalles más del script:

  • Escribe en el .claude/commands/ de la carpeta más cercana que tenga .claude/, empezando por la actual. Si lo lanzas desde tu proyecto real, ahí aparecen los archivos temporales (los borra al terminar, pero si cortas el proceso pueden quedarse).
  • Si tu skill ya está instalada en ese proyecto, Claude puede usar la instalada en vez de la copia temporal, y eso también cuenta como fallo. Prueba la activación en una carpeta aparte.

Cuánto cuesta crear una skill con skill-creator

PiezaCoste
skill-creatorGratis (Apache-2.0)
Escribir la skill y los 3 prompts de pruebaNuestra prueba: **0,13 USD**, 33 s con Sonnet 5.5
Cada prompt de prueba0,05 USD con la skill y 0,04 USD sin ella. 3 prompts × 2 versiones ≈ **0,27 USD por iteración**
Cada consulta de activaciónEntre 0,03 y 0,04 USD por ejecución
Optimización de la descripción por defecto20 consultas × 3 ejecuciones = 60 llamadas por ronda, unos **2 USD**; con hasta 5 rondas de mejora, puede pasar de **10 USD**
Con suscripción Pro (20 USD/mes)Todo lo anterior sale del límite de uso del plan en lugar de cobrarse aparte

Toda nuestra prueba, incluidas las repeticiones para confirmar el fallo, costó unos 1,60 USD. La parte cara es la optimización de la descripción, y casi nunca la necesitas completa.

Nuestra recomendación para gastar lo mínimo: usa skill-creator para el borrador y 2 o 3 prompts de prueba con y sin skill, que es donde más aprendes. Para la activación, empieza con 6-10 consultas y --runs-per-query 1 en serie; solo si fallan, lanza run_loop.py con --max-iterations 2. Y usa Sonnet o Haiku para las pruebas: la activación depende de la descripción, no del modelo más caro.

Errores frecuentes

Claude no puede escribir la skill en .claude/skills/. En modo no interactivo (claude -p), Claude Code protege la carpeta .claude/: nos rechazó la escritura incluso con --permission-mode acceptEdits y permiso explícito de Write sobre esa ruta. Pídele que la escriba en otra carpeta (borrador/mi-skill/) y cópiala tú. En una sesión interactiva te pedirá permiso.

La skill funciona en tus pruebas pero no se activa en el día a día. Tus prompts de prueba eran demasiado simples. La propia skill lo explica: Claude solo consulta una skill cuando la tarea no es trivial, así que "lee este PDF" no la activará aunque la descripción encaje. Escribe consultas con contexto real: nombres, cantidades, faltas, la historia del cliente.

El bucle de optimización empeora la descripción. Lo estás lanzando en paralelo (ver arriba) o con consultas trampa demasiado fáciles. Las útiles son las que comparten palabras con la skill pero necesitan otra cosa.

package_skill.py no incluye tus pruebas. Es a propósito: excluye la carpeta evals/ de la raíz de la skill. Guárdala en tu repositorio si quieres repetir las pruebas.

Escribir en mayúsculas "SIEMPRE" y "NUNCA". skill-creator lo desaconseja: funciona mejor explicar por qué importa una regla ("un precio inventado se convierte en una promesa al cliente") que gritarla.

Preguntas frecuentes

¿Necesito saber programar para usar skill-creator?

No para crear la skill: se la describes en lenguaje normal y Claude escribe el SKILL.md. Sí ayuda para las pruebas cuantitativas, que usan JSON y scripts de Python. La skill pide a Claude que adapte el vocabulario al usuario y explique términos como "assertion" si no los conoces.

¿Funciona en claude.ai o solo en Claude Code?

Las dos cosas, con límites. En claude.ai puedes crear la skill y probarla a mano, pero sin subagentes no hay comparación con y sin skill, y sin la CLI claude no hay optimización de la descripción. El método completo es para Claude Code.

¿Puedo vender las skills que cree con skill-creator?

La skill que escribes es tuya. skill-creator es Apache-2.0: si copias sus scripts o partes de su texto dentro de tu skill, conserva la licencia y el aviso de copyright e indica qué cambiaste.

¿Sirve para mejorar una skill que ya tengo?

Sí. En ese caso compara la versión nueva con una copia de la anterior en lugar de con "sin skill", y tiene un modo de comparación a ciegas (agents/comparator.md) para decidir cuál es mejor sin saber cuál es cuál.

¿Qué modelo uso para las pruebas?

El que vayas a usar en el día a día. Nosotros usamos Sonnet 5.5. La skill recomienda pasar a run_loop.py el mismo modelo de tu sesión para que la prueba de activación refleje lo que vas a ver.

Conclusión

skill-creator convierte "creo que esta skill funciona" en una comparación con números: qué hace Claude con la skill, qué hace sin ella y cuándo la activa. Para un procedimiento que repites cada semana, el borrador y tres pruebas te cuestan menos de medio dólar y te dicen si vale la pena. Lánzala en serie, prueba la activación en una carpeta aparte y no gastes en la optimización completa hasta que una prueba pequeña falle.

Siguiente paso: si tu skill va a conectar Claude con tus datos, mira cómo crear un servidor MCP con mcp-builder, y si genera webs, cómo probarlas con webapp-testing.

// código fuente

Repositorio del artículo
El código del que habla este artículo es público: revísalo, dale una estrella o clónalo desde aquí.

// kit para agencias

¿Haces webs para clientes con Claude Code?
5 skills que preparan la propuesta, crean la web, la revisan antes de entregarla y auditan la de tus prospectos, con una guía de 24 páginas probada en un caso real. Lo vende Safe Build Labs, la agencia que patrocina codigoagente.

// implementación

¿Necesitas implementar esta automatización en tu negocio?
No pierdas semanas configurando servidores, APIs y agentes. Safe Build Labs, la agencia que patrocina codigoagente, lo construye por ti, listo para producción.
Analizamos los 423 agentes de aitmpl.com con sus datos de SkillSpector: qué mirar antes de instalar uno, qué significa el sello de NVIDIA y qué agentes evitar.
  • Claude Code
  • Seguridad y revisión de código
leer artículo
Probamos mcp-builder, la skill de Anthropic para crear servidores MCP: hicimos uno para una tienda en 99 segundos por 0,25 USD y hallamos dos fallos de versión.
  • Skills para tus agentes
  • Claude Code
leer artículo
Probamos webapp-testing, la skill oficial de Anthropic que prueba tu web local con Playwright: instalación, with_server.py, dos trampas reales y cuánto cuesta.
  • Skills para tus agentes
  • Claude Code
leer artículo