| name | systematic-debugging |
| description | Debugging sistemático — proceso de cinco fases, encontrar la causa raíz antes de arreglar. |
Systematic Debugging
Principio core
Arreglos al azar desperdician tiempo y crean bugs nuevos.
SIN FIX SIN INVESTIGACIÓN DE ROOT CAUSE PRIMERO
SIN INVESTIGACIÓN SIN RECALL DE MEMORIA PRIMERO
Las Cinco Fases
Fase 0: Recall de Memoria (PRIMER PASO OBLIGATORIO)
- Extraer keywords del error (tipo de error, componente, proyecto)
mem_search con esos keywords
- Revisar resultados:
- ¿Experiencia relevante encontrada? → Aplicar directamente, saltar a Fase 4
- ¿Match parcial? → Usar como punto de partida
- ¿Nada? → Proceder a Fase 1, recordar grabar la solución después
Fase 1: Investigación de Root Cause
- Leer mensajes de error completamente — no saltear nada
- Reproducir consistentemente — pasos exactos, siempre
- Revisar cambios recientes — git diff, nuevas deps, cambios de config
- Trazar flujo de datos — ¿de dónde viene el valor incorrecto? Rastrear hacia atrás
Fase 2: Análisis de Patrón
- Encontrar ejemplos que funcionan en el mismo codebase
- Comparar contra referencias — leer completamente
- Identificar cada diferencia entre lo que funciona y lo roto
- Entender dependencias — settings, config, entorno, suposiciones
Fase 3: Hipótesis y Testing
- Formar hipótesis única: "Creo que X es el root cause porque Y"
- Testear mínimamente — el cambio más pequeño posible, una variable a la vez
- Verificar antes de continuar — ¿funcionó? → Fase 4. ¿No? → Nueva hipótesis
Fase 4: Implementación
- Crear test case fallido — reproducción mínima, automatizada si es posible
- Implementar fix único — UN cambio, sin mejoras de paso
- Verificar fix — test pasa, ningún otro test roto
- Si 3 fallos consecutivos en el mismo bloque de problema → PARAR, cuestionar arquitectura, hablar con Juan antes de más intentos. (Fallos en bloques distintos se cuentan separadamente.)
Red Flags — PARAR y seguir el proceso
- "Fix rápido por ahora, investigar después"
- "Probar cambiando X"
- Proponer soluciones antes de trazar el flujo de datos
- "Un intento más" (cuando ya se intentó 2+)
Todos significan: PARAR. Volver a Fase 1.
Quick Reference
| Fase | Actividades clave | Criterio de éxito |
|---|
| 0. Recall | Extraer keywords, mem_search | Resumen de recall |
| 1. Root Cause | Leer errores, reproducir, evidencia | Entender QUÉ y POR QUÉ |
| 2. Patrón | Encontrar ejemplos que funcionan, comparar | Identificar diferencias |
| 3. Hipótesis | Formar teoría, testear mínimamente | Confirmada o nueva hipótesis |
| 4. Implementación | Crear test, fix, verificar | Bug resuelto, tests pasan |
Después de resolver
Grabar con mem_save:
- Cuál fue el root cause
- Cómo se encontró
- Approach del fix
- Cómo prevenir recurrencia