← Volver al listado de tecnologías

Capítulo 3: Skills y Sistema de Plugins

Por: Artiko
claude-codeskillspluginsextensionespersonalización

Capítulo 3: Skills y Sistema de Plugins

Los Skills y Plugins son las formas más poderosas de extender Claude Code con funcionalidades personalizadas.

Objetivos del Capítulo

Skills

Los skills son comandos personalizados que puedes crear para automatizar tareas específicas.

¿Qué son los Skills?

Un skill es un archivo Markdown con:

Ubicación de Skills

# Skills globales (disponibles en todos los proyectos)
~/.claude/skills/

# Skills de proyecto
.claude/skills/

Crear un Skill Básico

<!-- ~/.claude/skills/code-review.md -->
---
name: code-review
description: Revisa código por mejores prácticas
---

Revisa el código seleccionado buscando:
1. Problemas de rendimiento
2. Vulnerabilidades de seguridad
3. Violaciones de código limpio
4. Oportunidades de refactoring

Proporciona sugerencias específicas con ejemplos.

Usar un Skill

# Listar skills disponibles
/skills

# Ejecutar skill
/code-review

# O invocarlo directamente
claude
> /code-review src/auth/login.ts

Frontmatter Avanzado

---
name: generate-tests
description: Genera tests unitarios completos
model: sonnet
context: fork

# Herramientas permitidas
tools:
  - Read
  - Write
  - Bash(npm test*)

# Tipo de agente
agent: qa-engineer

# Hooks específicos
hooks:
  PreToolUse:
    - match: Write
      action: ask
  PostToolUse:
    - match: Bash
      action: log
---

Genera tests unitarios usando el framework de testing del proyecto.
Asegúrate de cubrir:
- Happy paths
- Edge cases
- Error handling

Context Fork

El context: fork permite ejecutar el skill en un contexto aislado:

---
name: experiment
description: Experimenta sin afectar la conversación principal
context: fork
---

Experimenta libremente con diferentes enfoques.
Los cambios no afectarán la conversación principal.

Hot-Reload de Skills

Desde la versión 2.1.0, los skills se recargan automáticamente:

# Crea o modifica un skill
vim ~/.claude/skills/mi-skill.md

# El skill está disponible inmediatamente
# No necesitas reiniciar Claude Code
/mi-skill

Skills con Herramientas Específicas

---
name: db-query
description: Consulta la base de datos
tools:
  - mcp__postgres__query
allowed-tools:
  - mcp__postgres__query
  - Read
---

Ejecuta consultas SQL en la base de datos.
Solo lectura, no modificaciones.

Skills con Modelo Específico

---
name: architecture-review
description: Revisa arquitectura con análisis profundo
model: opus
---

Analiza la arquitectura del proyecto con pensamiento profundo.
Considera patrones, escalabilidad y mantenibilidad.

Sistema de Plugins

Los plugins extienden Claude Code con funcionalidades de terceros.

Comandos de Plugins

# Ver plugins instalados
/plugins

# Descubrir plugins
/plugins discover

# Instalar plugin
/plugins install <nombre>

# Habilitar/deshabilitar
/plugins enable <nombre>
/plugins disable <nombre>

# Actualizar plugins
/plugins update

Estructura de un Plugin

mi-plugin/
├── manifest.json       # Configuración del plugin
├── skills/            # Skills del plugin
│   └── mi-skill.md
├── agents/            # Agentes del plugin
│   └── mi-agent.md
└── hooks/             # Hooks del plugin
    └── pre-commit.js

manifest.json

{
  "name": "mi-plugin",
  "version": "1.0.0",
  "description": "Plugin de ejemplo",
  "author": "Tu Nombre",
  "skills": ["skills/mi-skill.md"],
  "agents": ["agents/mi-agent.md"],
  "hooks": ["hooks/pre-commit.js"],
  "dependencies": {
    "mcp-servers": ["@anthropic/mcp-server-github"]
  }
}

Marketplaces

// ~/.claude/settings.json
{
  "extraKnownMarketplaces": [
    "https://mi-empresa.com/claude-plugins"
  ]
}

Buscar Plugins

/plugins discover

# Filtrar por nombre o descripción
/plugins discover security
/plugins discover testing

Auto-update de Plugins

// manifest.json del plugin
{
  "autoUpdate": true
}

// O deshabilitar globalmente
// settings.json
{
  "pluginAutoUpdate": false
}

Skills de Proyecto

Estructura Recomendada

proyecto/
├── .claude/
│   ├── skills/
│   │   ├── deploy.md
│   │   ├── test-all.md
│   │   └── lint-fix.md
│   ├── agents/
│   │   └── project-expert.md
│   └── settings.json
└── ...

Skill de Deploy

<!-- .claude/skills/deploy.md -->
---
name: deploy
description: Despliega a producción
tools:
  - Bash
  - Read
allowed-tools:
  - Bash(npm run build)
  - Bash(npm run deploy)
  - Bash(git *)
---

Proceso de deploy:
1. Ejecuta tests
2. Build de producción
3. Verifica que el build es exitoso
4. Despliega a producción
5. Verifica que el deploy fue exitoso

Skill de Testing

<!-- .claude/skills/test-all.md -->
---
name: test-all
description: Ejecuta todos los tests con cobertura
---

1. Ejecuta tests unitarios
2. Ejecuta tests de integración
3. Genera reporte de cobertura
4. Resume resultados y sugiere mejoras

YAML-Style Tools

Desde v2.1.0, puedes declarar tools en formato YAML:

---
name: security-scan
tools:
  - Read
  - Grep
  - Bash(npm audit)
allowed-tools:
  - Read
  - Grep(password|secret|key)
  - Bash(npm audit)
---

Variables en Skills

---
name: greet
description: Saluda al usuario
---

Saluda al usuario ${USER} que está trabajando en ${PWD}.

Variables Disponibles

VariableDescripción
${USER}Usuario actual
${PWD}Directorio actual
${HOME}Directorio home
${CLAUDE_PLUGIN_ROOT}Raíz del plugin

Debugging de Skills

# Ver qué skills están cargados
/skills

# Verificar skill específico
claude --debug
/mi-skill

Resumen

En este capítulo aprendiste:

Próximo Capítulo

En el siguiente capítulo exploraremos Hooks y Personalización:

Siguiente: Capítulo 4 - Hooks y Personalización →