Me pillé a mí mismo escribiendo el mismo prompt de 200 palabras por cuarta vez en una semana. "Escribe un mensaje de commit convencional para los cambios en stage, que la primera línea no supere los 72 caracteres, referencia el issue si hay un número en el nombre de la rama..." Cada. Maldita. Vez. Ese es el momento en que deberías parar y construir un comando de barra. Así que vamos a configurar los comandos de barra y las skills de Claude Code, y olvidarnos de reescribir eso para siempre.
Ambas funciones hacen básicamente lo mismo: empaquetar instrucciones para poder reutilizarlas. Pero están diseñadas para trabajos distintos. Los comandos de barra son para cosas que tú activas. Las skills son para cosas que Claude activa cuando una tarea las requiere. Entiende esa diferencia y el resto es fácil.
Comandos de barra: tus atajos
Un comando de barra es un prompt guardado que ejecutas con /nombre. Lo creas poniendo un archivo markdown en .claude/commands/ dentro de tu proyecto. El nombre del archivo se convierte en el comando.
Vamos a matar ese prompt de mensaje de commit de una vez por todas. Crea .claude/commands/commit.md:
Escribe un mensaje de commit convencional para los cambios actualmente en stage.
Reglas:
- Primera línea de menos de 72 caracteres, en modo imperativo ("Add", no "Added").
- Prefijo de tipo: feat, fix, refactor, docs, test o chore.
- Si el nombre de la rama contiene un número de issue, referencíalo en el cuerpo.
- Muéstrame el mensaje. No ejecutes git commit tú solo.
Primero ejecuta `git diff --staged` para ver qué cambió.
Ahora en cualquier sesión escribo /commit y Claude hace todo el trabajo. Cuatro caracteres en lugar de doscientas palabras. El archivo es el comando: lo que contenga se envía como mi prompt cuando lo invoco.
Pasar argumentos
Los comandos son más útiles cuando aceptan entradas. Usa $ARGUMENTS como marcador de posición. Aquí está .claude/commands/explain.md:
Explica cómo funciona $ARGUMENTS en este código base.
Encuentra dónde está definido, rastrea cómo se usa y dame un breve
resumen en lenguaje sencillo. Usa un subagente para hacer la búsqueda
para no llenar nuestra conversación con volcados de archivos.
Entonces /explain el flujo de autenticación coloca "el flujo de autenticación" en ese lugar. Un comando, usos infinitos. Ahora tengo una docena de estos: /test, /review, /changelog, y han eliminado silenciosamente casi todo el trabajo repetitivo de mi día.
Skills: instrucciones que Claude usa por su cuenta
Los comandos de barra son geniales cuando tú sabes lo que quieres. Pero a veces quieres que Claude aplique conocimiento especializado automáticamente, en medio de una tarea, sin que tú recuerdes invocar nada. Para eso sirve una skill.
Una skill es una carpeta con un archivo SKILL.md. La parte superior de ese archivo describe cuándo se aplica la skill. Claude mantiene esa descripción en mente y cuando una tarea coincide, carga las instrucciones completas por su cuenta. Tú no escribes ningún comando. Simplemente ocurre.
Digamos que tu equipo tiene una forma muy estricta de escribir migraciones de base de datos. Crea .claude/skills/migrations/SKILL.md:
---
name: migrations
description: Cómo escribir migraciones de base de datos en este proyecto.
Usar siempre que se cree, edite o revise un archivo de migración.
---
Las migraciones viven en db/migrations, nombradas con un prefijo de marca de
tiempo UTC.
Cada migración debe:
- Ser reversible: incluir tanto up como down.
- Nunca eliminar una columna en la misma migración que deja de escribir en ella.
Divídelo en dos despliegues.
- Envolver los cambios de esquema en una transacción.
Antes de escribir una, lee las tres migraciones más recientes para igualar el estilo.
Ahora cuando le pido a Claude que "añada una migración para la nueva columna archived_at", nota que la tarea coincide con la descripción de la skill, carga estas reglas y las sigue, sin que yo mencione la palabra "skill". Ahí está la magia. El conocimiento aparece exactamente cuando es relevante y se mantiene fuera del camino el resto del tiempo.
¿Cuál construyo?
Aquí está la regla simple que uso.
Construye un comando de barra cuando tú decides cuándo ejecutarlo. Mensajes de commit, generar un changelog, iniciar una revisión específica: estas son acciones deliberadas. Tú las invocas.
Construye una skill cuando Claude deba decidir. Convenciones de código, reglas de dominio, estándares de formato: cualquier cosa que deba aplicarse automáticamente cuando aparezca una tarea coincidente. No quieres tener que acordarte de escribir /migrations cada vez que tocas la base de datos. Quieres que las reglas simplemente estén ahí.
Una buena heurística: si la frase empieza con "siempre que Claude haga X, debería..." es una skill. Si empieza con "a veces quiero..." es un comando.
La descripción es la parte estructural
Para las skills en especial, la línea description lo es todo. Así es como Claude decide si la skill aplica. Una descripción vaga hace que la skill nunca se active. Sé concreto sobre el disparador: "Usar siempre que se cree, edite o revise un archivo de migración" le dice a Claude exactamente cuándo activarla. "Cosas de base de datos" no funciona.
Es la misma energía que una buena descripción de herramienta, honestamente. Estás escribiendo para un agente que tiene que decidir, en el momento, si esto es relevante. Dale un sí o no claro.
Empieza con el que más te molesta
No te sientes a construir veinte de estos de golpe. Adivinarás mal lo que realmente necesitas. En cambio, espera hasta que sientas la fricción: esa cuarta reescritura, esa regla que sigues re-explicando, y construye ese. En ese momento. Tarda dos minutos y la ganancia es inmediata.
Toda mi colección creció así, una molestia a la vez. El comando de commit vino de reescribir prompts de commit. La skill de migraciones vino de cometer el mismo error de migración dos veces. Cada uno resolvió una irritación real y específica que podía señalar.
Así que aquí tienes tu tarea. La próxima vez que te pilles escribiendo un prompt que ya has escrito antes, para. Abre .claude/commands/, crea un archivo, pega el prompt. Acabas de recuperar cada copia futura de esos dos minutos. Hazlo diez veces y tu configuración de Claude Code dejará de sentirse genérica y empezará a sentirse como tuya.
