~/VibeHandbook
PDF gratis

Capítulo 07 · 08

Diagnósticos en vivo (LSP)

El ciclo de retroalimentación más ajustado no espera a que ejecutes el código; atrapa los errores en el momento en que se escriben. Eso es lo que provee el Language Server Protocol (Protocolo de Servidor de Lenguaje, ): la "inteligencia" en vivo detrás de tu editor, que incluye errores en tiempo real, información de tipos, ir a la definición y autocompletado. Un servidor de lenguaje lee tu código a medida que cambia y reporta problemas antes de que nada se ejecute.

El punto de apalancamiento para la programación vibe es retroalimentar esos diagnósticos a la IA. Sin eso, el ciclo es lento: la IA escribe código, tú lo ejecutas, falla por un error de tipeo o de tipo, y pegas el mensaje de vuelta a mano. Con los diagnósticos conectados, el ve la misma subrayada roja que ves tú en el instante en que escribe la línea, y corrige el error de tipo o de lint sobre la marcha, antes de que el código llegue siquiera a ejecutarse.

Puedes darle al agente esta visión de varias formas:

  • Ejecuta el servidor de lenguaje de tu stack (tsserver, rust-analyzer, pyright, etcétera); la mayoría de los editores nativos de IA hacen esto por ti.
  • Haz que el agente ejecute un comando de verificación de tipos o de lint y lea la salida, o expón los diagnósticos a través de un servidor .
  • Trata un informe de diagnósticos limpio como parte del "terminado", no como una ocurrencia tardía.

Conectado de esta manera, el agente ejecuta el mismo ciclo autocorrectivo por su cuenta: editar, ejecutar, leer el fallo, corregir y volver a ejecutar hasta que los diagnósticos vuelvan limpios:

   ┌──────────┐      ┌──────────┐      ┌──────────────┐
   │   EDIT   │ ───▶ │   RUN    │ ───▶ │ READ FAILURE │
   └──────────┘      └──────────┘      └──────┬───────┘
        ▲                                     │
        │                                     ▼
        │            ┌──────────┐       ┌──────────┐
        │            │   PASS   │ ◀──── │   FIX    │
        │            │  (done)  │  no   └──────────┘
        │            └────┬─────┘
        └─────────────────┘
            still failing

Esta es también la razón por la que un lenguaje tipado puede ser un superpoder silencioso para la programación vibe: cada anotación de tipo es una pequeña especificación verificada por máquina que atrapa los errores de la IA antes de que lleguen a ejecutarse jamás. Un ciclo de ejecutar-fallar-pegar se convierte en uno silencioso y autocorrectivo. La IA da menos vueltas y converge más rápido.

¿Lo quieres sin conexión?

Descarga el libro entero en PDF o EPUB — gratis.