Duración: 75 minutos Dificultad: Avanzado
Al final de este capítulo, podrás:
- Entender qué son los Skills y cómo funcionan
- Crear Skills personalizados para tu flujo de trabajo
- Instalar y gestionar Plugins desde marketplaces
- Crear tu propio Plugin empaquetado
- Configurar y usar el Code Execution Tool (Beta)
- Trabajar con Checkpoints para versionado automático
- Diferenciar entre Skills, Plugins, Agentes y Comandos Slash
Los Skills son capacidades modulares que extienden la funcionalidad de Claude Code mediante carpetas organizadas con instrucciones, scripts y recursos.
Piensa en Skills como módulos de conocimiento especializado:
- Comandos Slash: Ejecutan una tarea puntual
- Agentes: Trabajan autónomamente en contexto separado
- Skills: Conocimiento que Claude invoca cuando es relevante
1. Model-Invoked (Invocación por Modelo)
- Claude decide automáticamente cuándo usar un Skill
- Basado en tu petición y la descripción del Skill
- No necesitas invocarlos manualmente
2. Estructura Simple
- Un directorio con un archivo
SKILL.md - Archivos opcionales de soporte (scripts, templates)
- YAML frontmatter con metadata
3. Contexto Compartido
- Skills operan en el mismo contexto que la conversación principal
- A diferencia de agentes, no tienen contexto separado
- Claude accede al contenido del Skill cuando es relevante
| Feature | Invocación | Contexto | Persistencia |
|---|---|---|---|
| Comandos Slash | Manual (/command) |
Principal | Una vez |
| Agentes | Manual o auto | Separado | Durante tarea |
| Skills | Automática | Principal | Siempre disponible |
| Hooks | Automática (eventos) | N/A | Por evento |
Tú: "Necesito crear una API REST para usuarios"
Claude:
- Ve que tienes un Skill "api-design-patterns"
- Lee automáticamente las instrucciones del Skill
- Aplica los patrones y mejores prácticas del Skill
- Genera código siguiendo los guidelines del Skill
~/.claude/skills/mi-skill/
├── SKILL.md # Archivo principal (requerido)
├── templates/ # Opcional: plantillas
├── scripts/ # Opcional: scripts de soporte
└── examples/ # Opcional: ejemplos
Estructura básica:
---
name: api-design-patterns
description: Expert guidance for designing RESTful APIs following industry best practices
---
# API Design Patterns Skill
You are an expert in RESTful API design. When the user asks to create or review APIs, apply these patterns:
## REST Principles
1. **Resource-Based URLs**
- Use nouns, not verbs: `/users` not `/getUsers`
- Plural for collections: `/users`, `/posts`
- Nested resources: `/users/123/posts`
2. **HTTP Methods Correctly**
- GET: Retrieve resources (idempotent)
- POST: Create new resources
- PUT: Update entire resource
- PATCH: Partial update
- DELETE: Remove resource
3. **Status Codes**
- 200 OK: Successful GET/PUT/PATCH
- 201 Created: Successful POST
- 204 No Content: Successful DELETE
- 400 Bad Request: Client error
- 401 Unauthorized: Authentication required
- 403 Forbidden: Authenticated but no permission
- 404 Not Found: Resource doesn't exist
- 500 Internal Server Error: Server error
## API Response Format
Always use this JSON structure:
```json
{
"success": true,
"data": { ... },
"error": null,
"metadata": {
"timestamp": "ISO-8601",
"version": "1.0"
}
}- Always validate and sanitize input
- Use authentication (JWT recommended)
- Implement rate limiting
- Use HTTPS only
- Version your API:
/v1/users
When designing APIs, always consider:
- Pagination for large datasets
- Filtering and sorting capabilities
- Clear error messages
- Comprehensive documentation
### Campos del YAML Frontmatter
**name** (requerido)
- Identificador único del Skill
- Kebab-case: `api-design-patterns`
**description** (requerido)
- Descripción clara de qué hace el Skill
- Claude usa esto para decidir cuándo invocar el Skill
- Sé específico: ayuda a Claude a elegir el Skill correcto
### Instalación de Skills
**Opción 1: Manual**
```bash
mkdir -p ~/.claude/skills/mi-skill
nano ~/.claude/skills/mi-skill/SKILL.md
Opción 2: Desde un Plugin (ver Lección 12.3)
Opción 3: Clonar desde repositorio
cd ~/.claude/skills
git clone https://github.com/user/awesome-skill.git# Listar skills disponibles
ls ~/.claude/skills/
# Ver contenido de un skill
cat ~/.claude/skills/api-design-patterns/SKILL.md1. Testing Patterns Skill
---
name: testing-patterns
description: Comprehensive testing strategies for unit, integration, and e2e tests
---
# Testing Patterns Skill
When writing tests, follow these patterns:
## Test Structure (AAA Pattern)
- **Arrange**: Set up test data and conditions
- **Act**: Execute the code being tested
- **Assert**: Verify the results
## Naming Convention
```javascript
describe('UserService', () => {
describe('createUser', () => {
it('should create user with valid data', async () => {
// test
});
it('should throw error when email is invalid', async () => {
// test
});
});
});- Unit tests: 80%+ coverage
- Integration tests: Critical paths
- E2E tests: Key user journeys
**2. Git Commit Messages Skill**
```markdown
---
name: conventional-commits
description: Generate commit messages following Conventional Commits specification
---
# Conventional Commits Skill
Format: `<type>(<scope>): <description>`
## Types
- feat: New feature
- fix: Bug fix
- docs: Documentation only
- style: Formatting, missing semicolons, etc.
- refactor: Code change that neither fixes a bug nor adds a feature
- perf: Performance improvement
- test: Adding tests
- chore: Changes to build process or tools
## Examples
- `feat(auth): add JWT token refresh mechanism`
- `fix(api): resolve race condition in user creation`
- `docs(readme): update installation instructions`
3. Security Review Skill
---
name: security-review
description: Security audit checklist for code review focusing on common vulnerabilities
---
# Security Review Skill
When reviewing code for security, check:
## OWASP Top 10
1. **Injection**
- SQL injection: Use parameterized queries
- Command injection: Sanitize shell inputs
- NoSQL injection: Validate MongoDB queries
2. **Broken Authentication**
- Password hashing: bcrypt with salt
- Session management: Secure, HTTPOnly cookies
- Multi-factor authentication for sensitive operations
3. **Sensitive Data Exposure**
- Encrypt data at rest and in transit
- No secrets in code or logs
- Use environment variables for credentialsLos Plugins son paquetes que agrupan múltiples extensiones de Claude Code: comandos slash, agentes, MCP servers, Skills y hooks.
Un Plugin puede contener:
- 📝 Comandos Slash personalizados
- 🤖 Agentes especializados
- 🔌 Servidores MCP
- 🎓 Skills
- 🪝 Hooks preconfigurados
✅ Instalación con un solo comando
- Todo se configura automáticamente
- No necesitas configurar cada componente
✅ Compartir fácilmente
- Distribución en equipo
- Publicación en marketplaces
- Versionado y actualizaciones
✅ Consistencia
- Todos en el equipo usan las mismas herramientas
- Configuración estandarizada
Los marketplaces son catálogos de plugins que facilitan descubrir, instalar y gestionar extensiones.
Marketplace Oficial de Anthropic:
anthropics/skills
Marketplaces de la Comunidad:
obra/superpowers- Core skills libraryjeremylongshore/claude-code-plugins-plus- 227+ plugins- Tu empresa puede tener su propio marketplace privado
Agregar un Marketplace:
/plugin marketplace add anthropics/skillsListar Marketplaces:
/plugin marketplace listNavegar Plugins:
/pluginMuestra un menú interactivo con todos los plugins disponibles.
Instalar un Plugin:
/plugin install nombre-del-pluginListar Plugins Instalados:
/plugin listDesinstalar un Plugin:
/plugin uninstall nombre-del-pluginTú: /plugin marketplace add anthropics/skills
Claude: Marketplace 'anthropics/skills' agregado exitosamente.
Tú: /plugin
Claude: [Muestra menú interactivo]
Available Plugins:
1. test-automation - Automated testing workflows
2. api-toolkit - RESTful API development tools
3. devops-suite - DevOps automation and deployment
...
Tú: /plugin install test-automation
Claude: Installing 'test-automation'...
✓ Installed 2 skills
✓ Installed 3 slash commands
✓ Installed 1 agent
✓ Plugin 'test-automation' ready to use!
my-plugin/
├── .claude-plugin/
│ ├── manifest.json # Metadata del plugin
│ └── marketplace.json # Info del marketplace (opcional)
├── skills/
│ └── my-skill/
│ └── SKILL.md
├── agents/
│ └── my-agent.md
├── commands/
│ └── my-command.md
└── README.md
{
"name": "awesome-dev-toolkit",
"version": "1.0.0",
"description": "Comprehensive development toolkit with testing, API design, and security skills",
"author": "Tu Nombre <email@example.com>",
"repository": "https://github.com/user/awesome-dev-toolkit",
"skills": [
{
"path": "skills/api-design"
},
{
"path": "skills/testing-patterns"
}
],
"agents": [
{
"path": "agents/code-reviewer.md"
}
],
"commands": [
{
"path": "commands/review-pr.md"
}
],
"mcpServers": [],
"hooks": []
}Opción 1: GitHub Repository
# Tu plugin en: https://github.com/user/awesome-dev-toolkit
# Los usuarios instalan con:
/plugin marketplace add user/awesome-dev-toolkit
/plugin install awesome-dev-toolkitOpción 2: Crear Marketplace Privado
Archivo .claude-plugin/marketplace.json:
{
"name": "Mi Empresa Dev Tools",
"description": "Internal development tools for our team",
"plugins": [
{
"name": "company-standards",
"version": "1.0.0",
"description": "Company coding standards and best practices",
"source": {
"type": "git",
"url": "https://github.com/company/claude-standards.git"
}
},
{
"name": "api-templates",
"version": "2.1.0",
"description": "Standard API templates and patterns",
"source": {
"type": "git",
"url": "https://github.com/company/api-templates.git"
}
}
]
}Usa Semantic Versioning (semver):
1.0.0→ Primera versión estable1.1.0→ Nueva feature (backwards compatible)1.1.1→ Bug fix2.0.0→ Breaking changes
El Code Execution Tool permite a Claude ejecutar código Python en un entorno sandbox seguro.
✅ Seguridad
- Sandbox aislado sin acceso a internet
- No puede acceder al sistema de archivos externo
- Ambiente controlado y seguro
✅ Capacidades
- Ejecutar código Python
- Instalar paquetes (dentro del sandbox)
- Generar visualizaciones y gráficas
- Procesamiento de datos
Para usar Code Execution Tool necesitas:
- Claude Code con el modelo Sonnet 4.5+
- Beta habilitada:
"anthropic-beta": "code-execution-2025-05-22"
En ~/.claude/settings.json:
{
"model": "claude-sonnet-4-5",
"beta": ["code-execution-2025-05-22"]
}Tú: Analiza este dataset CSV y genera una visualización
Claude: [usa Code Execution Tool]
import pandas as pd
import matplotlib.pyplot as plt
# Leer datos
df = pd.read_csv('data.csv')
# Análisis
print(df.describe())
# Visualización
df.plot(kind='bar', x='category', y='value')
plt.title('Análisis de Datos')
plt.savefig('analysis.png')
[Claude ejecuta el código en el sandbox]
[Claude muestra resultados y gráfica]
1. Análisis de Datos
import pandas as pd
import numpy as np
# Cargar y analizar datos
df = pd.read_csv('sales.csv')
monthly_avg = df.groupby('month')['sales'].mean()
print(f"Promedio mensual: {monthly_avg}")2. Procesamiento de Texto
from collections import Counter
import re
text = "..." # texto largo
words = re.findall(r'\w+', text.lower())
most_common = Counter(words).most_common(10)
print("Palabras más frecuentes:", most_common)3. Cálculos Matemáticos
import numpy as np
from scipy import stats
data = [12, 15, 14, 10, 18, 16, 11]
mean = np.mean(data)
std = np.std(data)
median = np.median(data)
print(f"Media: {mean}, Desv. Std: {std}, Mediana: {median}")- Acceso a internet
- Acceso al sistema de archivos del host
- Operaciones que requieren permisos elevados
- Actualmente solo soporta Python
- No ejecuta JavaScript, Ruby, etc.
Los Checkpoints guardan automáticamente el estado de tu código antes de cada cambio, permitiendo rollback instantáneo.
Guardado Automático:
- Claude crea un checkpoint antes de cada modificación
- No necesitas hacer nada manualmente
- Histórico completo de cambios
Rollback Rápido:
# Presionar ESC dos veces
ESC ESC
# O usar comando
/rewind/rewind
Muestra lista de checkpoints recientes:
Recent Checkpoints:
1. 14:32 - Added user authentication
2. 14:25 - Created API endpoints
3. 14:18 - Set up database models
4. 14:10 - Initial project structure
Select checkpoint to restore (1-4):
1. Experimentación Segura
Tú: Intenta refactorizar esta función usando async/await
[Claude hace cambios]
[No funciona como esperabas]
Tú: ESC ESC
[Código vuelve al estado anterior]
2. Comparar Enfoques
Tú: Implementa esta feature usando Redux
[Claude implementa]
[Guardas mentalmente cómo quedó]
Tú: /rewind
Tú: Ahora implementa lo mismo con Context API
[Comparas ambos enfoques]
3. Recuperar de Errores
[Claude hace cambios que rompen la app]
Tú: /rewind
[Seleccionas checkpoint antes del error]
[App funciona nuevamente]
En .claude/settings.json:
{
"checkpoints": {
"enabled": true,
"maxCheckpoints": 50,
"autoSave": true
}
}/checkpoints listMuestra todos los checkpoints guardados:
Checkpoint History (50 total):
Today 14:32 - Added user authentication [current]
Today 14:25 - Created API endpoints
Today 14:18 - Set up database models
Today 14:10 - Initial project structure
Today 13:55 - Updated dependencies
...
Escenario: Desarrollar un dashboard de análisis de datos
1. Instalar Plugin de Data Science:
/plugin marketplace add anthropics/skills
/plugin install data-science-toolkitEsto instala:
- Skill:
pandas-patterns- Mejores prácticas con Pandas - Skill:
visualization-guide- Guías de visualización - Agent:
data-analyzer- Agente para análisis de datos - Comando:
/analyze-csv- Análisis rápido de CSV
2. Usar el Skill automáticamente:
Tú: Analiza este archivo CSV de ventas y genera insights
Claude:
[Lee automáticamente el Skill 'pandas-patterns']
[Usa Code Execution Tool para ejecutar análisis]
[Aplica mejores prácticas del Skill]
[Genera visualizaciones siguiendo 'visualization-guide']
3. Si algo sale mal, rewind:
[El análisis tiene un error]
Tú: ESC ESC
[Vuelve a estado anterior]
Tú: Intenta de nuevo, pero usa groupby en lugar de pivot
[Claude intenta enfoque diferente]
4. Delegar análisis profundo a agente:
Tú: Usa el agente data-analyzer para encontrar correlaciones
[Claude lanza el agente 'data-analyzer' del plugin]
[Agente realiza análisis exhaustivo]
[Devuelve reporte con correlaciones encontradas]
┌─────────────────────────────────────────┐
│ CLAUDE CODE CORE │
│ (Herramientas base, gestión de files) │
└─────────────────┬───────────────────────┘
│
┌───────────┴───────────┐
│ │
┌─────▼──────┐ ┌──────▼──────┐
│ PLUGINS │ │ SKILLS │
│ │ │ │
│ - Commands │ │ Auto-loaded │
│ - Agents │ │ Knowledge │
│ - MCP │ │ Modules │
│ - Skills │ └─────────────┘
│ - Hooks │
└────────────┘
│
│ Uses
▼
┌──────────────────┐
│ CODE EXECUTION │
│ (Sandbox) │
└──────────────────┘
│
│ Saves state
▼
┌──────────────────┐
│ CHECKPOINTS │
│ (Version History)│
└──────────────────┘
- Crea un Skill llamado
react-hooks-guide - Incluye mejores prácticas para
useState,useEffect,useMemo - Agrega ejemplos de errores comunes y cómo evitarlos
- Pruébalo pidiendo a Claude que revise componentes React
- Agrega el marketplace
anthropics/skills - Explora los plugins disponibles con
/plugin - Instala un plugin que te parezca útil
- Prueba los comandos/skills que incluye
- Pide a Claude que analice un dataset (CSV o JSON)
- Genera una visualización con matplotlib
- Observa cómo Claude usa el Code Execution Tool
- Intenta diferentes tipos de análisis
- Haz que Claude modifique un archivo
- Haz varios cambios consecutivos
- Usa
/rewindpara ver el historial - Vuelve a un checkpoint anterior
- Experimenta con un enfoque diferente
- Crea la estructura de directorios para un plugin
- Incluye al menos 1 Skill y 1 comando slash
- Crea el archivo
manifest.json - Documenta tu plugin en un README
- Compártelo con un compañero (opcional)
Pregunta 1: ¿Cuál es la diferencia principal entre un Skill y un Agente en términos de contexto e invocación?
Pregunta 2: ¿Qué componentes puede incluir un Plugin de Claude Code? (nombra al menos 4)
Pregunta 3: ¿Qué limitaciones tiene el Code Execution Tool y por qué existen?
Pregunta 4: ¿Cómo funcionan los Checkpoints y cuándo son especialmente útiles?
Diseña un Skill completo para uno de estos escenarios:
Opción A: Database Design Skill
- Propósito: Guiar en diseño de schemas de bases de datos
- Debe incluir: Normalización, índices, relaciones, mejores prácticas
- Escribe el archivo
SKILL.mdcompleto con YAML frontmatter
Opción B: Frontend Accessibility Skill
- Propósito: Asegurar accesibilidad en componentes web
- Debe incluir: ARIA labels, keyboard navigation, screen readers
- Escribe el archivo
SKILL.mdcompleto con YAML frontmatter
Crea un Plugin que incluya:
- Al menos 2 Skills relacionados
- 1 comando slash útil
- 1 agente especializado
- Archivo
manifest.jsoncompleto - README con documentación
Tema sugerido: "Web Development Essentials" o elige tu propio tema
Implementa y demuestra:
- Instala al menos 2 plugins del marketplace
- Crea tu propio Skill personalizado
- Usa Code Execution Tool para un análisis de datos real
- Demuestra el uso de Checkpoints con rollback
- Documenta todo el proceso con screenshots o texto
Explica cómo estas features mejoran tu flujo de trabajo.
Parte 1:
P1: [respuesta]
P2: [respuesta]
P3: [respuesta]
P4: [respuesta]
Muestra el archivo SKILL.md completo que creaste.
Muestra:
- Estructura de directorios del plugin
- Contenido de
manifest.json - Contenido de al menos 1 Skill y 1 comando
- README del plugin
Documenta cada paso con capturas o descripciones detalladas.
Una vez que apruebes este examen, dominarás las features más avanzadas de extensibilidad de Claude Code y estarás listo para crear tu propio ecosistema de herramientas personalizadas.
Anterior: capitulo_11.md
Siguiente: ¡Has completado el curso! 🎉
- obra/superpowers - Core skills library
- jeremylongshore/claude-code-plugins-plus - 227+ plugins
- anthropics/skills - Official skills marketplace