Saltar al contenido

Skills para Claude Code: una carpeta, tres agentes IA

Diagrama de una carpeta SKILL.md conectada con flechas a tres agentes IA: Claude Code, Codex CLI y Antigravity CLI

Skills para Claude Code: una carpeta, tres agentes IA

TL;DR: Una skill es una carpeta con un archivo SKILL.md. Ese formato funciona sin cambios en Claude Code (~/.claude/skills/), Codex CLI (~/.codex/skills/) y Antigravity CLI (~/.agents/skills/). Con un symlink de sistema operativo, editas el archivo una sola vez y los tres agentes ven el mismo contenido actualizado al instante.


¿Qué es una skill para agentes IA de línea de comandos?

Una skill es un bloque de instrucciones especializadas que le das a un agente IA para que sepa cómo comportarse en un dominio concreto. En lugar de repetir el mismo contexto en cada conversación, defines el comportamiento una vez y el agente lo carga automáticamente cada vez que arranca.

El formato es simple: una carpeta con un archivo SKILL.md dentro. Nada más es obligatorio. El resto (scripts, ejemplos, referencias) es opcional.

Lo relevante es que Claude Code, Codex CLI y Antigravity CLI comparten este estándar. El agente lee el name y la description de todas tus skills al arrancar (unos 100 tokens por skill), y solo carga el contenido completo cuando decide que esa skill es relevante para la tarea en curso. Esto se llama divulgación progresiva y es lo que hace que tener varias skills no penalice el rendimiento.

Una aclaración importante antes de continuar: esta guía usa las rutas de Antigravity CLI (~/.agents/skills/), que es la herramienta actual. No confundir con Gemini CLI (~/.gemini/skills/), una versión anterior que todavía aparece en muchas guías en línea.


Estructura de una skill

saludo-prueba/
├── SKILL.md          ← OBLIGATORIO
├── scripts/          ← Opcional: código ejecutable
├── references/       ← Opcional: documentación bajo demanda
├── examples/         ← Opcional: implementaciones de referencia
└── assets/           ← Opcional: plantillas y recursos

El archivo SKILL.md tiene dos secciones:

1. Frontmatter YAML

---
name: saludo-prueba
description: |
  Skill de demostración. USE FOR: probar que las skills cargan correctamente
  en Claude Code, Codex CLI y Antigravity CLI. DO NOT USE FOR: tareas de
  producción reales.
---

Dos campos son obligatorios:

  • name: solo minúsculas, números y guiones; máximo 64 caracteres; debe coincidir exactamente con el nombre de la carpeta. Si la carpeta se llama saludo-prueba, el name debe ser saludo-prueba. Un mismatch silencia la skill sin mensaje de error.
  • description: máximo 1024 caracteres. Es el campo más crítico porque el agente lo lee al inicio de cada sesión para decidir si la skill aplica. Incluir explícitamente patrones USE FOR: / DO NOT USE FOR: acelera esa decisión.

2. Cuerpo en Markdown

Después del frontmatter, escribes las instrucciones en Markdown libre. Aquí van las reglas de comportamiento, los pasos de un proceso, los comandos disponibles, o cualquier contexto que el agente deba conocer cuando active esta skill.

Regla de portabilidad

Si usas solo name, description y Markdown plano, tu skill funciona en los tres agentes sin modificación. Los campos específicos de un agente son ignorados por los demás sin errores.


Rutas donde busca cada agente

Estas son las rutas para un usuario en Windows:

Agente Ruta de skills
Claude Code %USERPROFILE%\.claude\skills\
Codex CLI %USERPROFILE%\.codex\skills\
Antigravity CLI %USERPROFILE%\.agents\skills\

En Git Bash: ~/.claude/skills/, ~/.codex/skills/, ~/.agents/skills/.

El problema con estas tres rutas separadas: si copias la carpeta de la skill en las tres, tienes tres versiones independientes. En cuanto editas una, las otras quedan desactualizadas.

La solución es crear una sola carpeta real y enlaces simbólicos desde cada ruta de agente hacia ella.


Cómo crear la fuente de verdad única

Paso 1 — Crear el directorio fuente

Abre Git Bash y ejecuta:

mkdir -p ~/skills-vault/saludo-prueba

mkdir -p crea toda la cadena de carpetas de una vez, sin error si ya existen. Aquí creamos skills-vault como tu repositorio personal de skills, y dentro saludo-prueba como la primera.

Paso 2 — Crear el SKILL.md

cat > ~/skills-vault/saludo-prueba/SKILL.md << 'EOF'
---
name: saludo-prueba
description: |
  Skill de demostración que verifica que el sistema de skills funciona.
  USE FOR: comprobar carga de skills, pruebas de instalación.
  DO NOT USE FOR: tareas de producción.
version: "1.0"
---

# Skill de saludo y prueba

Cuando esta skill está activa, responde con:

✅ SKILL «saludo-prueba» v1.0 ACTIVADA Hola, [nombre del usuario]. El sistema de skills funciona correctamente.


Confirma siempre la versión para verificar que el symlink está activo.
EOF

Verifica que el archivo existe:

ls ~/skills-vault/saludo-prueba/
# Debe mostrar: SKILL.md

Punto crítico: a partir de ahora, ~/skills-vault/saludo-prueba/ es la única carpeta que editas. Las entradas en .claude, .codex y .agents serán enlaces, no carpetas reales. Si creas una carpeta independiente en alguna de esas rutas, romperás la sincronización y tendrás tres versiones distintas sin saberlo.

Los symlinks de carpeta en Windows requieren permisos de administrador (o el Modo de desarrollador activado en Configuración → Privacidad y seguridad → Para desarrolladores).

Opción A: CMD como Administrador (más fiable)

Abre CMD con clic derecho → «Ejecutar como administrador» y ejecuta:

mkdir "%USERPROFILE%\.agents\skills"
mklink /D "%USERPROFILE%\.agents\skills\saludo-prueba" "%USERPROFILE%\skills-vault\saludo-prueba"

mkdir "%USERPROFILE%\.claude\skills"
mklink /D "%USERPROFILE%\.claude\skills\saludo-prueba" "%USERPROFILE%\skills-vault\saludo-prueba"

mkdir "%USERPROFILE%\.codex\skills"
mklink /D "%USERPROFILE%\.codex\skills\saludo-prueba" "%USERPROFILE%\skills-vault\saludo-prueba"

Aviso sobre el orden de argumentos — es la causa número uno de errores:

Herramienta Orden
ln -s (Git Bash) ln -s ORIGEN ENLACE
mklink /D (CMD) mklink /D ENLACE ORIGEN

Son al revés. mklink también requiere que la carpeta padre exista; por eso el mkdir va antes.

Opción B: Git Bash (requiere Modo de desarrollador)

export MSYS=winsymlinks:nativestrict
mkdir -p ~/.agents/skills ~/.claude/skills ~/.codex/skills
ln -s ~/skills-vault/saludo-prueba ~/.agents/skills/saludo-prueba
ln -s ~/skills-vault/saludo-prueba ~/.claude/skills/saludo-prueba
ln -s ~/skills-vault/saludo-prueba ~/.codex/skills/saludo-prueba

Sin la variable MSYS=winsymlinks:nativestrict, Git Bash en Windows puede copiar el archivo en lugar de enlazarlo, que es exactamente lo que queremos evitar.

Paso 4 — Verificar que son enlaces y no copias

En CMD:

dir "%USERPROFILE%\.agents\skills"
dir "%USERPROFILE%\.claude\skills"
dir "%USERPROFILE%\.codex\skills"

En la salida debe aparecer <SYMLINKD> junto al nombre de la carpeta:

29/05/2026  10:00    <SYMLINKD>     saludo-prueba [C:\Users\...\skills-vault\saludo-prueba]

Si aparece <DIR> en lugar de <SYMLINKD>, es una carpeta real, no un enlace. Bórrala y repite el paso anterior.


Probar que los tres agentes leen la misma skill

  1. Reinicia la sesión de cada agente. Es el paso más olvidado: los agentes indexan las skills al arrancar, no en caliente.

  2. En cada agente escribe: «prueba la skill de saludo» o «activa la skill saludo-prueba». Una frase ambigua como «hola» puede no activarla porque el agente la resuelve sin skills.

  3. Los tres deben responder con el marcador ✅ SKILL "saludo-prueba" v1.0 ACTIVADA.

Prueba definitiva de sincronización

Edita solo la fuente:

# Cambia v1.0 → v1.1 en la fuente
sed -i 's/v1.0/v1.1/g' ~/skills-vault/saludo-prueba/SKILL.md

Reinicia los tres agentes y vuelve a activar la skill. Si los tres responden con v1.1 sin que hayas tocado nada en .claude, .codex ni .agents, el enlace está funcionando correctamente.


Errores comunes y cómo resolverlos

Error Causa Fix
La skill no aparece al arrancar name en frontmatter no coincide con el nombre de la carpeta Verificar que name: saludo-prueba y la carpeta se llamen igual
mklink devuelve «El sistema no puede encontrar la ruta» La carpeta padre no existe Ejecutar mkdir antes del mklink
El enlace crea una copia en lugar de un symlink Git Bash sin MSYS=winsymlinks:nativestrict Exportar la variable o usar CMD como Administrador
Aparece <DIR> en lugar de <SYMLINKD> Se creó una carpeta real, no un enlace Borrar la carpeta y repetir con permisos de administrador
La skill se activa pero muestra versión antigua Agente no reiniciado Cerrar y abrir la sesión del agente
mklink requiere Administrador Sin permisos de admin ni Modo de desarrollador Activar Modo de desarrollador o ejecutar CMD como admin

Resumen: la lista de verificación completa

[ ] Carpeta fuente creada en ~/skills-vault/nombre-skill/
[ ] SKILL.md con name igual al nombre de la carpeta
[ ] description incluye USE FOR: / DO NOT USE FOR:
[ ] mkdir antes de mklink para cada agente
[ ] mklink /D con orden ENLACE → ORIGEN (no al revés)
[ ] CMD ejecutado como Administrador
[ ] dir muestra <SYMLINKD> (no <DIR>)
[ ] Agentes reiniciados tras crear los enlaces
[ ] Prueba con frase explícita de activación
[ ] Editar SIEMPRE en ~/skills-vault/, nunca en .claude/.codex/.agents

Escalar: agregar más skills al vault

Una vez que tienes la estructura, añadir una nueva skill es siempre el mismo patrón:

# 1. Crear en el vault
mkdir ~/skills-vault/mi-nueva-skill
# (crear SKILL.md dentro)

# 2. Enlazar en los tres agentes (CMD como admin)
mklink /D "%USERPROFILE%\.agents\skills\mi-nueva-skill" "%USERPROFILE%\skills-vault\mi-nueva-skill"
mklink /D "%USERPROFILE%\.claude\skills\mi-nueva-skill" "%USERPROFILE%\skills-vault\mi-nueva-skill"
mklink /D "%USERPROFILE%\.codex\skills\mi-nueva-skill" "%USERPROFILE%\skills-vault\mi-nueva-skill"

Con el tiempo, ~/skills-vault/ se convierte en tu repositorio personal de conocimiento para agentes IA: puedes versionarlo con Git, compartirlo con un equipo, o hacer backup sin coordinar tres carpetas distintas.

Comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *