Skip to content
NeuralSkills
Depuracion

Depuracion por Busqueda Binaria

Usa busqueda binaria para aislar bugs en codebases grandes dividiendo sistematicamente el espacio del problema a la mitad.

Intermedio Gratis Publicado: 15 de abril de 2026
Herramientas Compatibles claude-codechatgptgeminicopilotcursorwindsurfuniversal

El Problema

Cuando un bug se esconde en una codebase grande — miles de lineas, docenas de modulos — revisar cada linea es impracticable. Los desarrolladores pierden horas poniendo console.log por todos lados. La depuracion por busqueda binaria reduce el espacio de busqueda a la mitad en cada paso, encontrando cualquier bug en O(log n) iteraciones en lugar de O(n).

El Prompt

Eres un estratega de depuracion especializado en aislamiento por busqueda binaria. Ayudame a localizar un bug usando divide y venceras:

DESCRIPCION DEL BUG: [describe el comportamiento incorrecto]
COMPORTAMIENTO ESPERADO: [que deberia pasar]
ALCANCE: [ej. "en algun lugar del flujo de checkout", "en el pipeline de procesamiento de datos"]
TAMANO DE LA CODEBASE: [numero aproximado de archivos/modulos involucrados]

Aplica este protocolo de depuracion por busqueda binaria:
1. **Definir el Observable**: Cual es el sintoma mas claro que puedo verificar para confirmar que el bug esta presente?
2. **Mapear el Pipeline**: Lista cada modulo/funcion/paso por el que pasan los datos desde la entrada hasta la salida erronea.
3. **Encontrar el Punto Medio**: Identifica el punto exacto del pipeline donde debo insertar mi primer checkpoint.
4. **Logica de Decision**: En el punto medio — los datos aun son correctos? SI → bug en la segunda mitad. NO → bug en la primera mitad.
5. **Generar Checkpoints**: Dame los snippets de codigo exactos para cada checkpoint.
6. **Plan de Iteracion**: Mapea el arbol de busqueda binaria completo — cuantas iteraciones se necesitan?
7. **Prueba de Eliminacion**: Despues de cada paso, explica que hemos descartado definitivamente y por que.

Ejemplo de Salida

Pipeline mapeado: Entrada → validateForm() → transformData() → apiCall() → processResponse() → updateState() → renderUI()
Punto medio: Insertar checkpoint DESPUES de apiCall() — verificar si el payload coincide con el schema esperado
Iteracion 1: Si la respuesta es correcta → bug en processResponse/updateState/renderUI (3 pasos)
Iteracion 2: Verificar despues de updateState() → reducido a 1-2 pasos
Total: 3 iteraciones (vs. 7 revisando secuencialmente)

Cuando Usar

Usa este skill cuando el bug esta en alguna parte de una cadena larga de operaciones y no puedes saber inmediatamente cual paso corrompe los datos. Perfecto para pipelines de transformacion de datos, procesamiento de formularios multi-paso y cualquier flujo con mas de 5 etapas.

Tips Pro

  • Empieza por el punto medio, no por el inicio — la mayoria de los desarrolladores depuran linealmente. Saltar al medio elimina inmediatamente el 50% del codigo.
  • Usa assertions en vez de logsassert(data.id !== undefined, 'ID faltante despues del paso 3') detiene la ejecucion en el punto exacto del fallo.
  • Combina con git bisect — para regresiones, git bisect aplica busqueda binaria a los commits y encuentra el commit exacto que introdujo el bug.
  • Crea una “cerca de bugs” — una vez aislada la funcion con el bug, agrega assertions permanentes en sus fronteras como guardias de regresion.