Pular para o conteúdo

Para usuários do Windsurf

O Windsurf edita o arquivo.
O Maguyva enxerga o repositório.

O Windsurf é o editor e o Cascade é o agente. Num monorepo, o agente ainda precisa de um mapa de qual arquivo importa. O Maguyva indexa o seu codebase e devolve isso via MCP (semântica, AST, grafo e texto), para que “onde acontece a autenticação” retorne o fluxo de auth de verdade, não sete stubs de teste.

Plano Free: 3 repositórios, Até 50 mil linhas de repositório indexadas, sem cartão.

O Windsurf edita o que você aponta. O Maguyva diz ao Cascade qual arquivo apontar.

O que cada camada faz

Quatro peças. Cada uma com uma função.

// editor

Windsurf

Onde você e o Cascade realmente trabalham.

// contexto manual

menções com @ + .windsurfrules

Contexto manual funciona, até o repositório ficar grande.

// codebase

Maguyva

Fatos automáticos do codebase via MCP.

// quem paga

Workspaces, não assentos

Agentes não pagam assento. Ver preços

O Windsurf é o editor. Use-o.

A IDE não é o problema. O Cascade, o tab completion, as edições multi-arquivo e o .windsurfrules são excelentes, e você já usa isso para:

  • Sugestões inline e edições do Cascade no arquivo aberto.
  • Edições multi-arquivo quando a mudança é local.
  • .windsurfrules para convenções do repositório e guardrails de estilo.
  • Menções com @ para trazer um arquivo específico para o contexto.

Continue fazendo isso. Nada disso vai embora.

Mas num monorepo de verdade (TypeScript com dependências de workspace, serviços Python, pacotes misturados) o contexto do agente quebra no momento em que o arquivo relevante ainda não está no radar do Cascade.

Soluções manuais que você já tentou, e onde elas quebram

Quatro soluções manuais emparelhadas com seus modos de falha. Esquerda = o que você faz hoje. Direita = onde quebra.

// the fix

// mencione os arquivos

Você menciona com @ os três arquivos que acha que importam. O Cascade edita neles com precisão.

// where it breaks

// mencionar é um chute

Funciona quando você já sabe quais arquivos estão envolvidos. O objetivo das ferramentas de contexto é justamente revelar os arquivos que você não sabia que precisava mencionar.

// the fix

// cole os trechos

Você cola 200 linhas de outro pacote no Cascade para dar contexto suficiente.

// where it breaks

// código colado fica desatualizado

O trecho que você colou às 9h não reflete o rebase que seu colega de time fez às 11h. O Cascade está editando contra uma versão fantasma do pacote.

// the fix

// escreva um doc de contexto

Você escreve um arquivo .windsurfrules ou um markdown de arquitetura. Está certo hoje.

// where it breaks

// docs desatualizam mais rápido que o código

Tudo que você escreve à mão desatualiza. O código é a fonte da verdade. Um doc explicando a camada de fila está correto por uma semana, e errado para sempre depois.

// the fix

// mantenha os arquivos de rules

Você adiciona .windsurfrules para nomenclatura, lint e comandos de build. Ótimo para comportamento.

// where it breaks

// rules ≠ índice

.windsurfrules é o lugar certo para “sempre rode pnpm tsc -b antes de cada commit.” Não é um índice consultável de cada símbolo, arquivo e call-site no seu monorepo.

O Maguyva é a camada por baixo

Não é um substituto do Windsurf. É a camada de contexto de repositório que se conecta ao suporte MCP do Cascade.

  • Semântica + AST + grafo + texto busca por significado, estrutura, dependência ou literal. Cada resultado retorna um caminho de arquivo e número de linha.
  • Entre pacotes por padrão call-sites e importadores em todos os pacotes do monorepo, não só no que o Cascade tem aberto.
  • Consciente de branch O Maguyva enxerga a versão do código que o Cascade está editando.
  • Complementar, não concorrente .windsurfrules continua fazendo o trabalho dele. As menções com @ continuam fazendo o delas. O Maguyva preenche a lacuna que eles não preenchem.

O Cascade edita o arquivo que você aponta.

O Maguyva diz ao agente qual arquivo apontar.

Três fluxos de trabalho de monorepo

Entre pacotes, entre linguagens. Fundamentado no grafo de chamadas real, não no grep do Cascade.

// workflow 01

Encontre o fluxo de auth entre pacotes, sem mencionar nada

cascade> onde acontece a autenticação nesse 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 pontos de entrada em 4 pacotes, ranqueados por densidade de call-sites.
[exit 0]

Você não mencionou nenhum arquivo. Você não colou nenhum trecho. O Cascade tem os quatro arquivos que importam, na ordem certa, e pode fazer uma edição fundamentada.

// workflow 02

Encontre a implementação real, não o stub de teste

cascade> como o normalizePhoneNumber trata o 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]

Nomes mentem. Mocks fazem sombra no código real. O Maguyva ranqueia a implementação real acima do mock de teste, em todos os pacotes.

// workflow 03

Confira o raio de impacto antes de refatorar

cascade> o que chama QueueDispatcher.publish em todo o monorepo?

graph::callers(QueueDispatcher.publish)
  3 em packages/billing/*
  1 em packages/audit/*
  1 em packages/notifications/*
  1 em services/python-worker/*  ← entre linguagens via stub gRPC
[exit 0]

Entre pacotes, e entre linguagens quando você tem um repositório poliglota, os call-sites aparecem inline. O diff é fundamentado em importadores reais, não no grep do Cascade.

Configuração com o Windsurf

Três passos. Plano Free: 3 repositórios, Até 50 mil linhas de repositório indexadas, sem cartão.

  1. // step 01

    Indexe um repositório em maguyva.ai

    Escolha o monorepo onde você mais sentiu dor de contexto.

  2. // step 02

    Adicione o Maguyva como servidor MCP no Windsurf

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

    Faça uma pergunta cuja resposta você já saiba

    Não comece com a empresa inteira. Comece com um repositório e uma pergunta verificável, tipo “o que chama formatInvoice entre pacotes?”