\
CONTEXT/academy
Lección 03 · ≈ 14 min

Crea un plugin desde tus skills, hooks y agentes

Convertir tu .claude/ en un plugin y probarlo con --plugin-dir.

Crea un plugin desde tus skills, hooks y agentes

Toca empaquetar de verdad. Lo bueno: no partes de cero. Coges lo que ya fabricaste —la skill /review-pr, el subagente code-reviewer, la suite de hooks— y lo conviertes en un plugin. Sigue los pasos.

Paso 1 · Crea la estructura

mkdir -p dev-tools/.claude-plugin

dev-tools/.claude-plugin/plugin.json:

{
  "name": "dev-tools",
  "description": "Skills, hooks y revisor del equipo",
  "version": "1.0.0"
}

Si empezaras de cero (no migrando, como aquí), claude plugin init <nombre> --with skills hooks te andamia el esqueleto —plugin.json y carpetas— en un comando. Ojo: lo crea como plugin @skills-dir en ~/.claude/skills/, que carga en sitio sin marketplace; para el flujo de publicar de este curso, montar la carpeta a mano deja más claro qué vas a versionar.

Paso 2 · Copia lo que ya tienes

Tus componentes de .claude/ van a la raíz del plugin tal cual:

cp -r .claude/skills dev-tools/
cp -r .claude/agents dev-tools/

Los hooks son el único caso especial: en standalone viven en settings.json, pero en un plugin van en hooks/hooks.json. El formato del objeto hooks es el mismo, así que copias el bloque:

mkdir dev-tools/hooks

dev-tools/hooks/hooks.json (copiando tu bloque hooks de .claude/settings.json):

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

Paso 3 · Pruébalo sin instalarlo

Para desarrollar, carga el plugin directamente con --plugin-dir:

claude --plugin-dir ./dev-tools

Dentro de la sesión, comprueba cada pieza:

  • La skill aparece con namespace: /dev-tools:review-pr.
  • El subagente sale en /agents.
  • El hook de formato corre al editar un fichero.

Mientras iteras, /reload-plugins recarga los cambios sin reiniciar.

Paso 4 · Limpia los duplicados

Una vez el plugin funciona, puedes borrar los originales de .claude/ para no tener la config dos veces (la versión del plugin tiene precedencia cuando está cargado).

Lo que acabas de hacer es la migración estándar: lo que estaba suelto en .claude/ ahora es un paquete con nombre, versión y namespace. Listo para compartir — que es la siguiente lección.

Qué llevas hasta aquí

  • Conviertes tu .claude/ en plugin copiando skills y agents a la raíz; los hooks van a hooks/hooks.json (mismo formato).
  • Pruebas en desarrollo con --plugin-dir y recargas con /reload-plugins.
  • Verificas namespace de skills, subagentes en /agents y hooks corriendo.

En la siguiente lección, lo publicas: marketplaces para que el equipo lo instale.

Fuente oficial: Create plugins

¿Quieres llevar la cuenta de las lecciones que has terminado?

Entrar para guardar progreso