Comandos reutilizables, Skills y Plugin
Un buen workflow reutilizable reduce decisiones repetitivas sin ocultar responsabilidades. Aprenderás cuándo basta con un comando, cuándo hace falta una skill estructurada y qué comprobar antes de introducir un plugin.
Qué trabajarás, paso a paso
Comandos integrados, Skills y Plugin
Hoy un comando personalizado y una Skill no son dos peldaños obligatorios de la misma escalera. En Claude Code ambos pueden aparecer como `/nombre`; para un workflow nuevo, normalmente empiezas por una Skill. El plugin entra en juego cuando debes distribuir varios componentes como un único paquete.
Claude Code incluye comandos propios, como `/help` y `/compact`. Los antiguos custom commands se han integrado hoy en las Skills: tanto `.claude/commands/review.md` como `.claude/skills/review/SKILL.md` pueden crear `/review`, pero la carpeta Skills es la forma recomendada porque admite recursos, scripts e invocación automática.
Un plugin distribuye un conjunto más amplio de capacidades, por ejemplo Skills, agentes, hooks y servidores MCP. Empieza por el contrato más pequeño que resuelva el problema: si basta una sola Skill de review, no la conviertas de inmediato en un paquete con diez integraciones que inspeccionar y mantener.
Cada viernes debes transformar una lista de commits seleccionados en notas internas, sin publicarlas y sin leer toda la historia de la empresa.
- Crea directamente una Skill local con dos entradas, intervalo de commits y público destinatario, y una salida fija: cambios, correcciones y riesgos conocidos.
- Añade dos ejemplos aprobados y una checklist editorial, porque las categorías y el tono forman parte del método y no deben depender del recuerdo del chat.
- Mantén la Skill en solo lectura y deja la salida como borrador; la aprobación y la publicación siguen siendo acciones humanas separadas.
- Evalúa un plugin solo si debes recuperar commits de varios repositorios y enviar el borrador a un sistema externo, definiendo identidad, permisos y gestión de errores.
Resultado: El workflow crece cuando aparece una necesidad real. No introduces credenciales ni integraciones mientras una Skill local ya produzca un borrador fiable.
Entradas y salidas antes de las instrucciones
Antes de escribir instrucciones, define el contrato: qué entra, qué sale y cómo se ve un fallo. Un contrato no garantiza una respuesta correcta, pero hace posible darte cuenta de cuándo no lo es.
Define qué entra, qué valores son obligatorios y cómo se señala un error. Después especifica una salida que un ser humano u otra herramienta puedan comprobar. Un formato estable evita interpretaciones distintas entre ejecuciones.
Para una review, cada señalamiento —a menudo llamado finding— puede contener severidad, archivo, línea, riesgo y remedio. Si no existen problemas, la salida debe decirlo explícitamente e indicar qué controles se han ejecutado.
Un workflow lee un CSV y señala filas sospechosas. No debe corregir importes ni cargar nada en el sistema de gestión.
- Define la entrada: archivo UTF-8 de menos de 5 MB, columnas obligatorias `invoice_id`, `date`, `net`, `tax`, `total` y moneda declarada una sola vez.
- Valida estructura y tipos antes del análisis; si falta una columna, devuelve `invalid_input` con el nombre exacto y no intentes reconstruir los valores.
- Fija la salida para cada anomalía: fila, regla incumplida, valores observados y explicación; añade recuento total y controles ejecutados.
- Usa tres pruebas: factura correcta, total incoherente y archivo sin `tax`; confirma que ninguna prueba modifique el archivo fuente ni llame al sistema de gestión.
Resultado: Quien aprueba la importación recibe un informe comparable y sabe distinguir una factura limpia de un archivo que el workflow no logró leer.
Anatomía y pruebas de una skill
Una Skill no es solo un prompt más largo. Es un método reutilizable con condiciones de activación, materiales necesarios, pasos ordenados y una definición clara de cuándo el trabajo puede considerarse concluido.
Una skill eficaz tiene un archivo `SKILL.md`: en el frontmatter declaras al menos nombre y descripción, mientras que en el cuerpo explicas cuándo debe activarse, qué recursos debe leer, el orden de los pasos y la Definition of Done. Puede indicar herramientas permitidas e incluir ejemplos o scripts pequeños e inspeccionables.
Pruébala con un caso normal, una entrada incompleta y un caso que deba rechazar. La skill no está lista si funciona solo cuando el usuario ya conoce todas sus suposiciones.
- Define los triggers, el objetivo y los casos en que la skill no debe activarse.
- Especifica entradas obligatorias, permisos y formato de la salida.
- Organiza instrucciones, recursos y scripts en componentes inspeccionables.
- Prueba un caso normal, una entrada incompleta y un rechazo seguro.
- Compara el artefacto producido con una Definition of Done explícita.
Quieres crear ejemplos para la documentación a partir de tickets reales, eliminando datos personales sin alterar el significado técnico.
- Crea `.claude/skills/anonimizar-ticket/SKILL.md`. En el frontmatter inserta `name`, una `description` que diga cuándo activarla y solo los `allowed-tools` necesarios; en el cuerpo limita el trabajo a los textos proporcionados para la anonimización.
- Especifica categorías que detectar, como nombres, correos electrónicos, números de pedido y direcciones IP, y el formato de sustitución estable `[EMAIL_1]`, `[ORDER_1]`.
- Ordena los pasos: inventario de los datos sensibles, sustitución, segunda revisión e informe final; prohíbe guardado o envío externo sin autorización.
- Prueba un ticket normal, uno sin el texto y uno que contiene credenciales: en este último caso la Skill debe negarse a reproducirlas y pedir una fuente ya redactada.
Resultado: La Skill produce ejemplos coherentes y un informe de las sustituciones, pero conserva un límite claro: no se convierte en un canal para copiar o archivar secretos.
Procedencia y permisos
Instalar una capacidad externa significa extender la confianza a código, instrucciones y actualizaciones que no controlas directamente. El nombre del paquete y una descripción atractiva no cuentan qué podrá leer o modificar.
Antes de instalar capacidades externas, comprueba autor y versión, luego abre lo que realmente se va a instalar: Skills y sus comandos dinámicos, agentes, hooks, endpoints MCP, scripts, dependencias y permisos. Una descripción amable no demuestra que el comportamiento real sea seguro.
Prefiere versiones fijadas y una prueba en un entorno limitado. Registra por qué la herramienta es necesaria y cómo eliminarla. La reutilización debe reducir la carga operativa, no crear una dependencia opaca.
El equipo quiere transformar vencimientos aprobados en borradores de evento. El plugin proviene de un repositorio público y requiere acceso al calendario.
- Verifica autor, repositorio, release firmada e historial de cambios; compara el paquete descargado con la versión declarada.
- Lee manifest, scripts y dependencias: permite la lectura de los vencimientos seleccionados y la creación de borradores, pero rechaza acceso a contactos, correo electrónico y archivos innecesarios.
- Instala la versión fijada en un calendario de prueba sin datos personales; simula token caducado y servicio inaccesible, comprobando que no se creen eventos parciales.
- Documenta motivo de la adopción, responsable, procedimiento de revocación del token y eliminación; habilita el calendario real solo después de una review de la salida.
Resultado: La decisión no depende de la reputación percibida. Sabes qué datos atraviesan el plugin, qué acciones puede realizar y cómo interrumpir el acceso sin dejar credenciales activas.
Contrato de /review
Task Notes necesita reviews repetibles que no modifiquen el código.
Input: diff Git seleccionado
Permisos: solo lectura
Pasos: comportamiento -> riesgos -> pruebas faltantes
Output: severidad | archivo:línea | explicación | remedio
Error: señalar entrada vacía; no inventar finding