Saltar al contenido

Para usuarios de Windsurf

Windsurf edita el archivo.
Maguyva ve el repo.

Windsurf es el editor y Cascade es el agente. En un monorepo, el agente igual necesita un mapa de qué archivo importa. Maguyva indexa tu codebase y lo sirve de vuelta vía MCP (semántico, AST, grafo y texto), así que “dónde pasa la autenticación” devuelve el flujo de auth real, no siete stubs de prueba.

Nivel Free: 3 repositorios, Hasta 50 mil líneas de repo indexadas, sin tarjeta.

Windsurf edita lo que le señalas. Maguyva le dice a Cascade qué archivo señalar.

Qué hace cada capa

Cuatro piezas. Cada una tiene su trabajo.

// editor

Windsurf

Donde tú y Cascade realmente trabajan.

// contexto manual

menciones con @ + .windsurfrules

El contexto manual funciona, hasta que el repo se hace grande.

// codebase

Maguyva

Hechos automáticos del codebase vía MCP.

// quién paga

Workspaces, no asientos

Los agentes no pagan asientos. Ver precios

Windsurf es el editor. Úsalo.

El IDE no es el problema. Cascade, el autocompletado de tabulador, las ediciones multiarchivo y .windsurfrules son excelentes, y ya los usas para:

  • Sugerencias inline y ediciones de Cascade en el archivo abierto.
  • Ediciones multiarchivo cuando el cambio es local.
  • .windsurfrules para convenciones del repo y reglas de estilo.
  • Menciones con @ para traer un archivo específico al contexto.

Sigue haciendo eso. Nada de eso desaparece.

Pero en un monorepo real (TypeScript con dependencias de workspace, servicios en Python, paquetes mixtos) el contexto del agente se rompe en el momento en que el archivo relevante todavía no está en el radar de Cascade.

Arreglos manuales que ya probaste, y dónde fallan

Cuatro arreglos manuales junto con su modo de falla. Izquierda = lo que haces hoy. Derecha = dónde se rompe.

// the fix

// menciona los archivos

Mencionas con @ los tres archivos que crees que importan. Cascade edita limpiamente dentro de ellos.

// where it breaks

// mencionar es adivinar

Funciona cuando ya sabes cuáles archivos están involucrados. El objetivo de las herramientas de contexto es justamente mostrar los archivos que no sabías que había que mencionar.

// the fix

// pega los snippets

Pegas 200 líneas de otro paquete en Cascade para darle suficiente contexto.

// where it breaks

// el código pegado se vuelve viejo

El snippet que pegaste a las 9 a. m. no refleja el rebase que tu compañero hizo a las 11 a. m. Cascade está editando contra una versión fantasma del paquete.

// the fix

// escribe un doc de contexto

Escribes un archivo .windsurfrules o un markdown de arquitectura. Hoy está correcto.

// where it breaks

// los docs se desactualizan más rápido que el código

Todo lo que escribes a mano se desactualiza. El código es la fuente de verdad. Un doc que explica la capa de colas es correcto durante una semana, y después está mal para siempre.

// the fix

// mantén los archivos de reglas

Agregas .windsurfrules para nomenclatura, lint y comandos de build. Genial para el comportamiento.

// where it breaks

// reglas ≠ índice

.windsurfrules es el lugar correcto para “siempre ejecuta pnpm tsc -b antes de los commits”. No es un índice consultable de cada símbolo, archivo y punto de llamada en tu monorepo.

Maguyva es la capa que está debajo

No es un reemplazo de Windsurf. Es la capa de contexto de repo que se conecta al soporte MCP de Cascade.

  • Semántica + AST + grafo + texto busca por significado, estructura, dependencia o texto literal. Cada resultado devuelve una ruta de archivo y un número de línea.
  • Entre paquetes por defecto puntos de llamada e importadores en todos los paquetes del monorepo, no solo en el que Cascade tiene abierto.
  • Consciente de branch Maguyva ve la versión del código que Cascade está editando.
  • Complementario, no competitivo .windsurfrules sigue haciendo su trabajo. Las menciones con @ siguen haciendo el suyo. Maguyva llena el hueco que ellos no cubren.

Cascade edita el archivo que le señalas.

Maguyva le dice al agente qué archivo señalar.

Tres flujos de trabajo de monorepo

Entre paquetes, entre lenguajes. Fundamentado en el grafo de llamadas real, no en el grep de Cascade.

// workflow 01

Encuentra el flujo de auth entre paquetes, sin mencionar nada

cascade> ¿dónde pasa la autenticación en este monorepo?

graph::query("authentication flow")
  packages/web/src/auth/session.ts:42       middleware
  packages/api/src/auth/jwt.ts:88           token verify
  packages/shared/src/auth/types.ts:12      AuthContext
  packages/admin/src/auth/admin-only.ts:31  rbac gate

 4 puntos de entrada en 4 paquetes, ordenados por densidad de puntos de llamada.
[exit 0]

No mencionaste ningún archivo. No pegaste ningún snippet. Cascade tiene los cuatro archivos que importan, en el orden correcto, y puede hacer una edición fundamentada.

// workflow 02

Encuentra la implementación real, no el stub de prueba

cascade> ¿cómo maneja normalizePhoneNumber el formato E.164?

semantic::query("normalize phone E.164")
  packages/shared/util/phone.ts:88     normalizePhoneNumber()  ← impl real
  packages/api/test/phone.spec.ts:14   jest.mock(...)          ← stub
[exit 0]

Los nombres mienten. Los mocks tapan el código real. Maguyva ubica la implementación real por encima del mock de prueba, en todos los paquetes.

// workflow 03

Revisa el radio de impacto antes de refactorizar

cascade> ¿qué llama a QueueDispatcher.publish en todo el monorepo?

graph::callers(QueueDispatcher.publish)
  3 en packages/billing/*
  1 en packages/audit/*
  1 en packages/notifications/*
  1 en services/python-worker/*  ← entre lenguajes vía stub de gRPC
[exit 0]

Entre paquetes, y entre lenguajes cuando tienes un repo políglota, los puntos de llamada aparecen inline. El diff está fundamentado en importadores reales, no en el grep de Cascade.

Configuración con Windsurf

Tres pasos. Nivel Free: 3 repositorios, Hasta 50 mil líneas de repo indexadas, sin tarjeta.

  1. // step 01

    Indexa un repo en maguyva.ai

    Elige el monorepo donde más has sentido el dolor de contexto.

  2. // step 02

    Agrega Maguyva como servidor MCP en Windsurf

    // ~/.codeium/windsurf/mcp_config.json
    {
      "mcpServers": {
        "maguyva": {
          "serverUrl": "https://maguyva.tools/mcp",
          "headers": {
            "Authorization": "Bearer <your-key>"
          }
        }
      }
    }
  3. // step 03

    Haz una pregunta cuya respuesta ya conozcas

    No empieces con toda tu empresa. Empieza con un repo y una pregunta verificable, como “¿qué llama a formatInvoice entre paquetes?”