Skills y Slash Commands son los más accesibles para empezar. Los Skills actúan como "reflejos" del agente, mientras que los Slash Commands son atajos que tú controlas.
MCP es el puente con el mundo exterior - úsalo cuando necesites datos que Claude no tiene.
Subagents son el arma secreta para tareas pesadas que pueden correr en paralelo.
| Característica | Skill | MCP | Subagent | Slash Command |
|---|---|---|---|---|
| Disparado por | Agente | Ambos | Ambos | Usuario |
| Eficiencia de Contexto | Alta | Baja | Alta | Alta |
| Persistencia de Contexto | ✓ | ✓ | ✗ | ✓ |
| Paralelizable | ✗ | ✗ | ✓ | ✗ |
| Modularidad | Alta | Alta | Media | Media |
| Puede usar Subagents | ✓ | ✓ | ✗ | ✓ |
Subagents son los únicos paralelizables, pero NO persisten contexto. Ideales para tareas independientes.
MCP tiene baja eficiencia de contexto porque cada llamada externa consume tokens.
Skills el agente decide cuándo usarlos automáticamente.
Ejemplo: "Cuando veas un PDF, extrae el texto"
Ejemplo: "Consulta los tickets de Jira"
Ejemplo: "/commit fix: corregir login"
Ejemplo: "Audita seguridad mientras sigo trabajando"
Empieza con Slash Commands - son los más fáciles de crear y entender. Luego avanza a Skills cuando veas patrones repetitivos. Usa MCP para integraciones y Subagents para tareas pesadas.
"Funciona para mí ahora mismo"
"Esto generará horas de trabajo productivo"
1 hora diseñando un buen prompt
= 100+ horas de trabajo productivo del agente
Los prompts bien construidos son una inversión, no un gasto.
allowed-tools, model, version
name, description (qué + cuándo)
Secuencia de pasos numerados
$ARGUMENTS, $1, estáticas
Guías para ejecutar el workflow
Formato esperado de salida
--- description: Analiza código y genera reporte allowed-tools: Read, Grep, Glob argument-hint: [archivo o directorio] --- # Analyzer Agent ## Variables - TARGET: $ARGUMENTS (requerido) - DEPTH: superficial | profundo ## Workflow 1. Leer el código en TARGET 2. Identificar patrones y problemas 3. Clasificar por severidad 4. Generar recomendaciones ## Instructions - Si TARGET es directorio, analiza recursivo - Prioriza seguridad sobre estilo - Máximo 10 issues por archivo ## Report ``` ## Resumen [1-2 líneas] ## Issues | Archivo | Línea | Severidad | Issue | ... ## Recomendaciones 1. ... ```
La sección más importante. Define qué hace el agente paso a paso. Las instructions explican cómo.
.claude/skills/
~/.claude/skills/
--- name: pdf-processing description: Extrae texto de PDFs, rellena formularios. Úsalo cuando trabajes con archivos PDF o extracción de documentos. allowed-tools: Read, Bash(python3:*), Write version: 1.0.0 --- # Instrucciones detalladas aquí...
Claude usa la descripción para decidir cuándo activar la skill. Sé específico sobre el "cuándo" y el "qué".
---
name: data-analysis
description: Analiza archivos CSV/Excel,
genera estadísticas y gráficos. Úsalo
cuando trabajes con datos tabulares o
necesites visualizaciones.
allowed-tools: Read, Write, Bash(python3:*)
version: 1.0.0
---
# Análisis de Datos
## Paso 1: Cargar datos
```python
import pandas as pd
df = pd.read_csv('datos.csv')
# o Excel:
df = pd.read_excel('datos.xlsx')
```
## Paso 2: Análisis exploratorio
```python
print(df.describe()) # Estadísticas
print(df.corr()) # Correlaciones
```
## Paso 3: Visualización
```python
import matplotlib.pyplot as plt
df['columna'].plot(kind='bar')
plt.savefig('grafico.png')
```
## Limitaciones
- Archivos menores a 100MB
- Máximo 1 millón de filas
allowed-toolsMCP es un estándar abierto que permite conectar Claude Code con herramientas externas: APIs, bases de datos, servicios como GitHub, Jira, Notion, etc.
| Servidor | Uso |
|---|---|
| GitHub | Repos, PRs, Issues |
| PostgreSQL | Consultas SQL |
| Notion | Docs, bases de datos |
| Slack | Mensajes, canales |
| Browser | Web scraping |
# Listar servidores configurados claude mcp list # Agregar servidor HTTP claude mcp add --transport http \ notion https://mcp.notion.com/mcp # Agregar servidor local (stdio) claude mcp add --transport stdio github \ -e GITHUB_TOKEN=$GITHUB_TOKEN \ -- npx -y @modelcontextprotocol/server-github # Verificar estado /mcp
MCP tiene baja eficiencia de contexto. Cada llamada consume tokens. Úsalo para datos externos, no para lógica que Claude ya puede hacer.
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y",
"@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN":
"${GITHUB_TOKEN}"
}
},
"postgres": {
"command": "npx",
"args": ["-y",
"@modelcontextprotocol/server-postgres"],
"env": {
"DATABASE_URL":
"postgresql://user:pass@localhost/db"
}
},
"notion": {
"transport": "http",
"url": "https://mcp.notion.com/mcp",
"headers": {
"Authorization": "Bearer ${NOTION_TOKEN}"
}
}
}
}
Nunca hardcodees tokens: ${GITHUB_TOKEN}
| Variable | Descripción |
|---|---|
$ARGUMENTS |
Todo el texto después del comando |
$1, $2... |
Argumentos posicionales |
--- description: Crea commit con mensaje convencional allowed-tools: Bash(git:*) argument-hint: [tipo] [mensaje] --- Crea un commit git siguiendo convenciones: ## Tipos válidos: - feat: Nueva funcionalidad - fix: Corrección de bug - docs: Documentación - refactor: Refactorización ## Proceso: 1. git add -A 2. git commit -m "$1: $ARGUMENTS" Ejemplo de uso: /commit feat agregar login con OAuth
Analiza código para calidad y seguridad
--- description: Revisa código para calidad allowed-tools: Read, Grep, Glob --- Analiza el código en: $ARGUMENTS Busca: 1. Vulnerabilidades de seguridad 2. Code smells 3. Oportunidades de refactor 4. Tests faltantes Reporta con archivo:línea
Corre tests y analiza fallos
--- description: Ejecuta tests y analiza fallos allowed-tools: Bash(npm test:*), Read argument-hint: [archivo o patrón] --- 1. Ejecuta: npm test $ARGUMENTS 2. Si hay fallos, analiza el error 3. Sugiere correcciones específicas 4. Muestra el código problemático
Crea README o docs de API
--- description: Genera documentación allowed-tools: Read, Write, Glob argument-hint: [archivo o directorio] --- Genera documentación para: $ARGUMENTS Incluye: - Descripción del propósito - Parámetros y tipos - Ejemplos de uso - Casos edge
Escanea vulnerabilidades comunes
--- description: Escanea vulnerabilidades allowed-tools: Grep, Glob, Read --- Busca en el código: - Contraseñas hardcodeadas - SQL injection - XSS vulnerabilities - Secrets expuestos - APIs inseguras Reporta: CRÍTICO/ALTO/MEDIO/BAJO
Genera el prompt para recrear el proyecto con IA
--- description: Genera prompt para reproducir proyecto allowed-tools: Read, Glob, Grep --- Analiza el proyecto y genera un prompt que permita a Claude Code recrearlo desde cero. 1. Lee CLAUDE.md, README.md, dependencias 2. Analiza estructura y arquitectura 3. Detecta stack, CLI, API, convenciones 4. Genera prompt estructurado 5. Ofrece añadirlo al README
Cada subagent tiene su propio contexto. No hay "contaminación" de otras tareas.
Puedes lanzar varios subagents simultáneamente mientras sigues trabajando.
Cada uno tiene su system prompt optimizado para una tarea específica.
--- name: code-reviewer description: Experto en revisión de código. Revisa calidad, seguridad y mantenibilidad. Úsalo después de escribir código. model: opus tools: Read, Grep, Glob disallowedTools: Write, Edit --- # Senior Code Reviewer Eres un revisor senior con 15+ años de experiencia. ## Tu proceso: 1. Lee el código modificado 2. Identifica problemas de calidad 3. Busca vulnerabilidades 4. Sugiere mejoras concretas ## Formato de reporte: **Línea XX**: [SEVERIDAD] - Problema Sugerencia: código mejorado
Audita OWASP Top 10, busca secrets expuestos, valida inputs.
disallowedTools: Write, Edit, Bash # Solo puede leer, nunca modificar
Escribe tests unitarios, integración. Cobertura mínima 80%.
tools: Read, Write, Bash(npm test:*) # Puede escribir tests y ejecutarlos
Identifica bottlenecks, N+1 queries, memory leaks.
tools: Read, Grep, Glob, Bash # Puede ejecutar profilers
Genera README, API docs, guías de usuario.
tools: Read, Write, Glob # Lee código, escribe documentación
Opus: Tareas críticas (seguridad, arquitectura) - más caro pero más profundo
Sonnet: Balance general - la mayoría de tareas
Haiku: Tareas simples y rápidas - 3x más económico
El comando funciona pero no aparece en listados y no tiene restricciones de herramientas.
# Mi comando genial Haz esto y aquello... # Falta el frontmatter: # --- # description: ... # allowed-tools: ... # ---
+300 líneas = consume contexto innecesariamente. Divide en comandos más pequeños.
# vault.md (330 líneas) # Actualiza: knowledge-base, dashboard, # tools/, projects/, patterns/ # Mejor dividir: # /vault → knowledge-base # /vault/tool → tools/ # /vault/project → projects/
Poco portable. Si cambias de máquina o reorganizas, se rompe todo.
# Malo: ~/Desktop/DirectOS/data/content/ ~/learning-journey/knowledge-base.md # Mejor: usar variables o rutas relativas $PROJECT_ROOT/content/ ./knowledge-base.md
Claude Code ya tiene memoria, resúmenes automáticos, y CLAUDE.md. No crees agentes para replicar esto.
# Innecesario: "Agente para conservar memoria y contexto entre sesiones" # Ya existe: - CLAUDE.md (contexto de proyecto) - Resúmenes automáticos - /vault para persistir a archivos
Antes de crear un agente o skill, pregúntate: ¿Claude ya hace esto de forma nativa? Si la respuesta es sí, probablemente solo necesitas un slash command simple o nada.
--- name: memory-orchestrator description: Use this agent when the user needs to manage long-running, multi-phase projects that require context preservation across conversation sessions... [+800 caracteres con ejemplos] model: haiku --- # Tu Rol Principal Gestionar la memoria y contexto de proyectos multifase, creando documentos guía que permitan: - Preservar estado entre sesiones - Permitir clear sin pérdida - Continuar fase por fase
Quemaba tokens para algo que Claude ya hace automáticamente.
model: haiku para gestión compleja de contexto. Haiku es para tareas simples y rápidas.
~1000 caracteres con ejemplos en el frontmatter. Los ejemplos van en el body.
Claude ya tiene: CLAUDE.md, resúmenes automáticos, memoria de sesión.
Slide 2: Subagents tienen Context Persistence: ✗. No pueden "recordar" entre sesiones.
Sesión → /vault (guarda a archivos) → clear → nueva sesión → Claude lee archivos automáticamente
description - obligatorioallowed-tools - recomendadomodel - solo si necesitas otro| Check | Criterio |
|---|---|
| ✓ | Tiene frontmatter YAML |
| ✓ | Descripción < 200 caracteres |
| ✓ | Menos de 100 líneas (idealmente) |
| ✓ | Sin rutas hardcodeadas |
| ✓ | Una responsabilidad |
| ✓ | No replica funcionalidad nativa |
| ✓ | Modelo apropiado al costo |
Menos es más. Un slash command de 20 líneas que hace una cosa bien es mejor que un agente de 200 líneas que intenta hacer todo.
KISS + DRY + Incremental
Funciona bien para proyectos pequeños/medianos. Para proyectos grandes (+50 features), necesitas algo más estructurado.
feature_list.json - Source of truthclaude-progress.txt - Handoff notesinit.sh - Bootstrap script
{
"features": [
{
"id": 1,
"name": "User authentication",
"passes": true,
"test": "npm test auth"
},
{
"id": 2,
"name": "Dashboard view",
"passes": true,
"test": "npm test dashboard"
},
{
"id": 3,
"name": "Export to PDF",
"passes": false, // ← Próximo
"test": "npm test export"
}
]
}
Los archivos son la memoria. Los tests son la verdad. El agente solo ejecuta el loop.
| Aspecto | Tu flujo | Avanzado |
|---|---|---|
| Estado | Prosa (MD) | Estructurado (JSON) |
| Verdad | Tu criterio | Tests automatizados |
| Progreso | Manual | Automático |
| Regresiones | No detectadas | Tests las capturan |
| Setup | Ninguno | Initializer + JSON |
| Ideal para | 1-20 features | 50-200+ features |
Convierte tu documento de fases en JSON con passes: true/false
Aunque sean smoke tests, tener algo verificable
Un slash command que ejecute el loop automáticamente
---
description: Ejecuta loop de desarrollo hasta completar features
allowed-tools: Read, Write, Bash(npm:*), Bash(git:*)
---
# Agent Harness Loop
## 1. Get Bearings
- Lee feature_list.json
- Lee claude-progress.txt
- git log --oneline -5
## 2. Regression Test
- npm run test
- Si falla algo que pasaba → arreglar primero
## 3. Pick Next Feature
- Busca en feature_list.json: passes: false
- Selecciona el primero
## 4. Implement & Test
- Implementa la feature
- Corre el test específico
- Si pasa → actualiza JSON
## 5. Update & Commit
- feature_list.json → passes: true
- claude-progress.txt → notas
- git commit -m "feat: {feature name}"
## 6. ¿Continuar?
- Si hay más features: sugiere continuar
- Si contexto lleno: sugiere clear + /harness
Antes: "Creo que ya terminé esta parte"
Después: "El test pasa, está terminado"
Code review de calidad, seguridad y mantenibilidad
/code-review src/auth/ /code-review main.py Analiza: - Calidad (nombres, complejidad, DRY) - Seguridad (OWASP Top 10) - Mantenibilidad (tipos, tests) Output: CRÍTICO | ALTO | MEDIO | BAJO
Ejecuta tests, analiza fallos y sugiere correcciones
/test /test auth.test.ts Detecta framework automáticamente: - npm test / jest / vitest - pytest - go test / cargo test Si falla: analiza causa + sugiere fix
Genera documentación técnica desde código
/doc readme → README.md completo /doc src/api.ts → Doc de ese archivo /doc src/ → Índice del directorio Incluye: - Ejemplos reales del código - Estructura detectada - API/endpoints
Auditoría OWASP Top 10 + secrets expuestos
/security /security src/ Busca: - API keys, passwords hardcodeados - SQL injection, XSS - Input sin validar - npm audit / pip-audit Output: 🔴 CRÍTICO → 🔵 BAJO
Analiza código y sugiere mejoras
/refactor src/utils.ts /refactor lib/ Detecta: - Funciones largas (+30 líneas) - Código duplicado - God classes - Dead code Prioriza: Impacto × Esfuerzo
Comandos en ~/.claude/commands/
~/.claude/commands/ ├── vault.md # Persistencia ├── scan-projects.md # Detectar proyectos ├── code-review.md # Code review ├── test.md # Tests ├── doc.md # Documentación ├── security.md # Auditoría ├── refactor.md # Mejoras └── update-context.md # Actualizar CLAUDE.md
/code-review después de escribir código → /test para validar → /security antes de commit → /doc al completar feature → /vault al final de sesión
Archivo en la raíz del proyecto que Claude lee automáticamente al inicio de cada sesión.
Claude lo lee sin que lo pidas
NO se actualiza solo. Debes editarlo tú o usar /update-context
Sistema de archivos personales que persisten conocimiento entre proyectos.
Claude no lo lee automáticamente (está fuera del proyecto)
Ejecutas /vault cuando quieres guardar
CLAUDE.md = "Lo que Claude debe saber de ESTE proyecto" (scope: proyecto)
/vault = "Lo que yo quiero recordar de TODO lo que aprendo" (scope: personal)
Nuevo comando: /update-context para mantener CLAUDE.md actualizado con cambios recientes del proyecto.
Muchos tutoriales y proyectos usan la librería anthropic:
import anthropic
client = anthropic.Anthropic() # API_KEY
response = client.messages.create(
model="claude-sonnet-4-20250514",
messages=[{"role": "user", "content": prompt}]
)
# → PAGA POR TOKENS 💸
ANTHROPIC_API_KEYclaude -pClaude Code CLI puede ejecutarse desde Python:
import subprocess
import json
result = subprocess.run(
["claude", "-p", prompt,
"--output-format", "json"],
capture_output=True, text=True
)
response = json.loads(result.stdout)
# → USA TU SUSCRIPCIÓN ✅
claude -p "prompt" usa tu suscripción, no la API.
Ejemplo real: VideoNotes adaptado con --claude-code para resumir videos sin pagar tokens.
1 hora diseñando prompts = 100+ horas de trabajo productivo
Todo prompt agéntico se diseña para 3 audiencias:
👤 Tú (¿Lo entenderé en 6 meses?) • 👥 Tu Equipo (¿Un colega nuevo lo entendería?) • 🤖 Tus Agentes (¿El workflow es ejecutable?)
| Sin Memoria | Con Memoria |
|---|---|
| Proyecto N = mismo esfuerzo | Proyecto N = fracción del esfuerzo |
| Conocimiento encerrado en código | Conocimiento conectado |
| Claude genérico | Claude-TÚ |
| Proyecto | Eficiencia |
|---|---|
| #1 | 1.0x (baseline) |
| #14 | ~2.5x |
| #50 | ~5x |
La diferencia entre usar IA y tener IA que te conoce.
Todos usan Claude. Solo TÚ tendrías Claude que conoce tu ecosistema, tus patrones, tus preferencias.
El system prompt es la instrucción inicial que define la personalidad, conocimiento y comportamiento del LLM.
Con claude -p "prompt" puedes inyectar contexto personalizado.
System Prompt + Contexto Dinámico + Memoria = Claude Personalizado
| Métrica | Por qué |
|---|---|
| Acciones frecuentes | Sugerir atajos |
| Secuencias repetidas | Detectar workflows |
| Sugerencias aceptadas | Mejorar precisión |
| Errores comunes | Prevenir proactivamente |
Cada interacción debe enseñar algo al sistema. Si no estás trackeando, estás perdiendo conocimiento.