Domingo, 18 de octubre de 2026

El diario del SEO, la IA y el marketing digital

Última hora

Desarrollo e IA Guía

Skills, subagentes, hooks y plugins de Claude Code: guía práctica

Qué es cada pieza, cuándo conviene usarla y cómo crear la primera con ejemplos de la documentación oficial de Anthropic.

Skills, subagentes, hooks y plugins de Claude Code: guía práctica

Claude Code funciona bien recién instalado, pero donde realmente marca la diferencia es cuando se adapta a cada equipo. Para eso ofrece cuatro piezas que conviene no confundir: skills, subagentes, hooks y plugins. Esta guía explica qué es cada una, cuándo usarla y cómo crear la primera con ejemplos sacados de la documentación oficial.

¿Qué diferencia hay entre skills, subagentes, hooks y plugins?

  • Skill: un archivo SKILL.md con instrucciones que Claude carga cuando son relevantes o cuando lo invocas con /nombre. Sirve para enseñarle procedimientos.
  • Subagente: un asistente especializado con su propia ventana de contexto, sus herramientas y su prompt de sistema. Sirve para delegar trabajo sin ensuciar la conversación principal.
  • Hook: un comando que Claude Code ejecuta siempre en un punto concreto de su ciclo de vida. Sirve para imponer reglas de forma determinista.
  • Plugin: un paquete que agrupa skills, subagentes, hooks y servidores MCP para instalarlos de una vez y compartirlos.

La regla práctica: si repites las mismas instrucciones en el chat, crea una skill; si una tarea genera mucho ruido (logs, búsquedas, tests), delégala en un subagente; si algo debe ocurrir siempre sin depender de que el modelo se acuerde, usa un hook; y si quieres repartirlo al equipo, empaquétalo en un plugin.

¿Cómo se crea una skill en Claude Code?

Una skill es una carpeta con un SKILL.md: cabecera YAML y cuerpo en Markdown. El único campo recomendado es description, porque Claude lo usa para decidir cuándo cargarla. Este ejemplo de la documentación resume los cambios sin commitear y se guarda en ~/.claude/skills/summarize-changes/SKILL.md:

---
description: Summarizes uncommitted changes and flags anything risky. Use when the user asks what changed, wants a commit message, or asks to review their diff.
---

## Current changes

!`git diff HEAD`

## Instructions

Summarize the changes above in two or three bullet points, then list any risks you notice.

La línea que empieza por ! es inyección de contexto dinámico: Claude Code ejecuta el comando e inserta la salida antes de que el modelo lea la skill. Después basta con preguntar «¿qué he cambiado?» o escribir /summarize-changes.

Dónde guardarlas: ~/.claude/skills/ para uso personal en todos los proyectos y .claude/skills/ dentro del repositorio para compartirlas con el equipo. Un detalle importante: los antiguos comandos personalizados de .claude/commands/ se han fusionado con las skills y siguen funcionando igual. Campos útiles del frontmatter son disable-model-invocation: true (solo se invoca a mano, ideal para un /deploy), allowed-tools y model.

Además de ahorrar repeticiones, las skills ahorran tokens: su cuerpo solo se carga cuando se usan. Por eso Anthropic recomienda mover instrucciones específicas del CLAUDE.md a skills.

¿Qué son los subagentes y cuándo usarlos?

Cada subagente trabaja en su propio contexto y devuelve solo el resultado. Así, la salida de una búsqueda extensa o de una batería de tests no llena la conversación principal. Claude Code trae varios integrados: Explore (búsqueda rápida en el código, solo lectura), Plan (investigación durante el modo plan, también de solo lectura) y general-purpose (tareas de varios pasos con todas las herramientas).

Lee también: Mods de Claude Code: ya se puede reprogramar el agente por dentro

Crear uno propio es escribir un Markdown con frontmatter. Ejemplo oficial, en .claude/agents/code-reviewer.md:

---
name: code-reviewer
description: Reviews code for quality and best practices
tools: Read, Glob, Grep
model: sonnet
---

You are a code reviewer. When invoked, analyze the code and provide
specific, actionable feedback on quality, security, and best practices.

Solo name y description son obligatorios. Limitar tools a herramientas de lectura impide que un revisor modifique código, y fijar model: haiku en tareas sencillas reduce costes. Los subagentes de proyecto viven en .claude/agents/ y los personales en ~/.claude/agents/. También puedes pedírselo a Claude en lenguaje natural: «crea un subagente revisor de seguridad en .claude/agents».

Pueden ejecutarse en primer plano, bloqueando la conversación hasta terminar, o en segundo plano mientras sigues trabajando. Con Ctrl+B se manda una tarea en curso al segundo plano.

¿Qué son los hooks de Claude Code?

Los hooks son comandos que se ejecutan en eventos concretos: antes de usar una herramienta (PreToolUse), después (PostToolUse), al enviar un prompt (UserPromptSubmit), al iniciar sesión (SessionStart), cuando Claude necesita atención (Notification) o cuando termina de responder (Stop), entre muchos otros. Su valor es que son deterministas: no dependen de que el modelo decida hacerlo.

El ejemplo clásico formatea con Prettier cada archivo que Claude edita. Se añade al .claude/settings.json del proyecto:

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Edit|Write",
        "hooks": [
          {
            "type": "command",
            "command": "jq -r '.tool_input.file_path' | xargs npx prettier --write"
          }
        ]
      }
    ]
  }
}

Para bloquear acciones se usa PreToolUse: si el script termina con código de salida 2, la acción se cancela y Claude recibe el motivo por stderr. La documentación incluye un script que impide editar .env, package-lock.json o cualquier cosa dentro de .git/. Además del tipo command, existen hooks http, mcp_tool, prompt (una evaluación con un modelo) y agent (experimental). El comando /hooks muestra los configurados.

¿Cómo se instalan plugins en Claude Code?

Un plugin es un directorio con un manifiesto en .claude-plugin/plugin.json y sus componentes. Se instalan desde marketplaces, que son catálogos. Claude Code añade el marketplace oficial de Anthropic, claude-plugins-official, la primera vez que se abre una sesión interactiva. Para explorarlo, escribe /plugin y entra en la pestaña Discover.

Al instalar se elige ámbito: usuario (todos tus proyectos), proyecto (todo el equipo, vía .claude/settings.json versionado) o local (solo tú en ese repositorio). Dos cautelas: un plugin activo añade los nombres y descripciones de sus skills y agentes al contexto de cada turno, aunque no se use, y todo lo que ejecuta lo hace con tus permisos. Instala solo de fuentes de confianza y desactiva lo que no uses.

Desde el 1 de octubre, los plugins pueden incluir además mods: código JavaScript o TypeScript que se ejecuta dentro de Claude Code y puede dibujar paneles o interceptar llamadas a herramientas. Lo contamos en detalle en nuestra noticia sobre su lanzamiento.

Una configuración de partida para un equipo

  1. Un CLAUDE.md corto con comandos de build, test y convenciones.
  2. Skills de proyecto para los procedimientos repetidos: revisión de PR, despliegue a staging, creación de migraciones.
  3. Un subagente revisor de solo lectura y otro para ejecutar tests con un modelo barato.
  4. Hooks de formateo tras cada edición y de bloqueo de archivos sensibles.
  5. Todo ello empaquetado en un plugin interno cuando el equipo crezca.

Fuentes

#claude code#skills#subagentes#hooks#plugins