Agentic Workshop
Módulo 05 · 55 min

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.

Lecciones

Qué trabajarás, paso a paso

5.1

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.

Para verlo en la práctica · Elegir el formato para las notas de lanzamiento

Cada viernes debes transformar una lista de commits seleccionados en notas internas, sin publicarlas y sin leer toda la historia de la empresa.

  1. Crea directamente una Skill local con dos entradas, intervalo de commits y público destinatario, y una salida fija: cambios, correcciones y riesgos conocidos.
  2. 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.
  3. 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.
  4. 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.

5.2

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.

Para verlo en la práctica · Revisar una factura de proveedor antes de la importación

Un workflow lee un CSV y señala filas sospechosas. No debe corregir importes ni cargar nada en el sistema de gestión.

  1. 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.
  2. 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.
  3. Fija la salida para cada anomalía: fila, regla incumplida, valores observados y explicación; añade recuento total y controles ejecutados.
  4. 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.

5.3

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.

  1. Define los triggers, el objetivo y los casos en que la skill no debe activarse.
  2. Especifica entradas obligatorias, permisos y formato de la salida.
  3. Organiza instrucciones, recursos y scripts en componentes inspeccionables.
  4. Prueba un caso normal, una entrada incompleta y un rechazo seguro.
  5. Compara el artefacto producido con una Definition of Done explícita.
Para verlo en la práctica · Una Skill para anonimizar tickets de soporte

Quieres crear ejemplos para la documentación a partir de tickets reales, eliminando datos personales sin alterar el significado técnico.

  1. 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.
  2. 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]`.
  3. 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.
  4. 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.

5.4

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.

Para verlo en la práctica · Evaluar un plugin que prepara eventos de calendario

El equipo quiere transformar vencimientos aprobados en borradores de evento. El plugin proviene de un repositorio público y requiere acceso al calendario.

  1. Verifica autor, repositorio, release firmada e historial de cambios; compara el paquete descargado con la versión declarada.
  2. 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.
  3. 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.
  4. 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.

Ejemplo guiado

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