Cap 12: Ralph Wiggum Loop
Qué es Ralph Wiggum Loop
Ralph Wiggum Loop es un plugin para Claude Code que permite ejecutar tareas autónomas de larga duración. En lugar de que Claude se detenga y espere aprobación en cada paso, el loop mantiene al agente trabajando continuamente hasta completar la tarea.
El nombre viene del meme de Ralph Wiggum: “I’m in danger” — el agente trabaja de forma autónoma sin supervisión constante.
Cuándo usar
- Refactoring de múltiples archivos
- Migración de código entre frameworks
- Generación de tests para un módulo completo
- Tareas repetitivas que requieren muchos pasos
- Trabajo nocturno o en background
Cuándo NO usar
- Cambios críticos en producción
- Operaciones irreversibles (delete de datos)
- Tareas donde la revisión humana es esencial
- Primer uso con un codebase desconocido
Instalación
Ralph Wiggum se instala como plugin de Claude Code:
# Instalar el plugin
claude plugin add ralph-loop
# Verificar instalación
claude plugin list
Comandos disponibles
| Comando | Descripción |
|---|---|
/ralph-loop | Iniciar el loop autónomo |
/cancel-ralph | Cancelar el loop activo |
/ralph-loop:help | Ver ayuda del plugin |
Uso básico
claude
> /ralph-loop
# Claude te pedirá la tarea:
> "Migra todos los componentes de clase a functional components en src/components/"
# El loop comienza:
# 1. Claude analiza el scope
# 2. Crea un plan
# 3. Ejecuta paso a paso
# 4. Commitea cada cambio
# 5. Continúa hasta completar
Configuración
Sandbox recomendado
Para tareas autónomas, es recomendable limitar lo que Claude puede hacer:
{
"permissions": {
"allow": [
"Read",
"Edit(src/**)",
"Write(src/**)",
"Bash(bun test *)",
"Bash(git add *)",
"Bash(git commit *)",
"Glob",
"Grep"
],
"deny": [
"Bash(rm -rf *)",
"Bash(git push *)",
"Bash(curl * | bash)"
]
}
}
Límites de seguridad
# Limitar presupuesto
claude -p --max-budget-usd 10.00 "tarea..."
# Limitar turnos
claude -p --max-turns 50 "tarea..."
Flujo del loop
flowchart TD
I([Inicio]) --> AP[Analizar tarea y crear plan]
AP --> EJ[Ejecutar siguiente paso]
EJ --> VR[Verificar resultado\ntests + lint]
VR --> CM[Commitear cambio atómico]
CM --> MP{¿Más pasos?}
MP -->|Sí| EJ
MP -->|No| RF([Resumen final])
VR --> ER{¿Error?}
ER -->|Sí| COR[Intentar corregir]
COR --> VR
ER -->|Irrecuperable| REP([Reportar al usuario])
Mejores prácticas
- Definir scope claro: “todos los archivos en src/components/” es mejor que “todos los componentes”
- Tests como verificación: asegurar que hay tests que validen el trabajo
- Commits atómicos: el loop commitea cada cambio, facilitando revert
- Revisar al final: siempre revisar los cambios después del loop
- Limitar presupuesto: establecer límites de gasto y turnos
- Branch separado: trabajar en un branch dedicado, no en main
Alternativa: Print mode con scripting
Si no quieres usar el plugin, puedes simular un loop con print mode:
# Script de loop básico
claude -p --max-turns 20 \
"Migra los componentes de clase a functional components.
Trabaja uno por uno. Commitea cada cambio.
Ejecuta tests después de cada cambio."
Siguiente: CLI Flags y Startup