Przejdź do treści

Dla użytkowników Windsurf

Windsurf edytuje plik.
Maguyva widzi repo.

Windsurf to edytor, a Cascade to agent. W monorepo agent nadal potrzebuje mapy tego, który plik ma znaczenie. Maguyva indeksuje twój kod i udostępnia go z powrotem przez MCP (semantyczne, AST, grafowe i tekstowe), więc pytanie „gdzie dzieje się autoryzacja” zwraca rzeczywisty przepływ auth, a nie siedem atrap testowych.

Plan Free: 3 repozytoria, Do 50 tys. zindeksowanych linii repo, bez karty.

Windsurf edytuje to, na co wskażesz. Maguyva mówi Cascade, na jaki plik wskazać.

Co robi każda warstwa

Cztery elementy. Każdy ma swoje zadanie.

// edytor

Windsurf

Gdzie ty i Cascade naprawdę pracujecie.

// ręczny kontekst

@ wzmianki + .windsurfrules

Ręczny kontekst wygrywa, dopóki repo nie jest duże.

// baza kodu

Maguyva

Automatyczne fakty o kodzie przez MCP.

// kto płaci

Workspace'y, nie stanowiska

Agenci nie płacą za stanowiska. Zobacz cennik

Windsurf to edytor. Korzystaj z niego.

IDE nie jest problemem. Cascade, autouzupełnianie, edycje wielu plików i .windsurfrules są świetne i już z nich korzystasz do:

  • Podpowiedzi inline i edycji Cascade w otwartym pliku.
  • Edycji wielu plików, gdy zmiana jest lokalna.
  • .windsurfrules dla konwencji repo i reguł stylu.
  • Wzmianek @, by wciągnąć konkretny plik do kontekstu.

Rób tak dalej. Nic z tego nie znika.

Ale w prawdziwym monorepo (TypeScript z zależnościami workspace, usługi w języku Python, mieszane pakiety) kontekst agenta pęka w momencie, gdy istotny plik nie jest jeszcze na radarze Cascade.

Ręczne obejścia, które już wypróbowałeś, i gdzie zawodzą

Cztery ręczne obejścia zestawione z ich trybem awarii. Lewo = co robisz dzisiaj. Prawo = gdzie to zawodzi.

// the fix

// wspomnij pliki

Wzmiankujesz @ trzy pliki, które twoim zdaniem mają znaczenie. Cascade edytuje w nich bez zarzutu.

// where it breaks

// wzmiankowanie to zgadywanie

Działa, gdy już wiesz, które pliki są zaangażowane. Cały sens narzędzi kontekstowych polega na wydobyciu plików, o których wspomnieniu nie wiedziałeś.

// the fix

// wklej fragmenty

Wklejasz 200 linii z innego pakietu do Cascade, żeby dać mu wystarczający kontekst.

// where it breaks

// wklejony kod się dezaktualizuje

Fragment wklejony o 9 rano nie odzwierciedla rebase'a, który twój kolega z zespołu wprowadził o 11. Cascade edytuje wobec fantomowej wersji pakietu.

// the fix

// napisz dokument kontekstowy

Piszesz plik .windsurfrules lub markdown z architekturą. Dziś jest aktualny.

// where it breaks

// dokumentacja dezaktualizuje się szybciej niż kod

Wszystko, co napiszesz ręcznie, z czasem odbiega od stanu faktycznego. Kod jest źródłem prawdy. Dokument opisujący warstwę kolejki jest poprawny przez tydzień, a potem błędny na zawsze.

// the fix

// trzymaj się plików reguł

Dodajesz .windsurfrules dla nazewnictwa, lintowania i komend budowania. Świetne dla zachowania.

// where it breaks

// reguły ≠ indeks

.windsurfrules to dobre miejsce na “zawsze uruchamiaj pnpm tsc -b przed commitem.” To nie jest przeszukiwalny indeks każdego symbolu, pliku i miejsca wywołania w twoim monorepo.

Maguyva to warstwa pod spodem

To nie zamiennik Windsurf. Warstwa kontekstu repo, która opiera się na obsłudze MCP w Cascade.

  • Semantyczne + AST + graf + tekst wyszukiwanie po znaczeniu, strukturze, zależności lub dosłownym tekście. Każdy wynik zwraca ścieżkę pliku i numer linii.
  • Między pakietami domyślnie miejsca wywołań i importerzy w każdym pakiecie monorepo, nie tylko w tym, który ma otwarty Cascade.
  • Świadome brancha Maguyva widzi wersję kodu, którą edytuje Cascade.
  • Uzupełniające, nie konkurencyjne .windsurfrules nadal robi swoje. Wzmianki @ nadal robią swoje. Maguyva wypełnia lukę, której one nie wypełniają.

Cascade edytuje plik, na który wskażesz.

Maguyva mówi agentowi, na jaki plik wskazać.

Trzy przepływy pracy w monorepo

Między pakietami, między językami. Ugruntowane na rzeczywistym grafie wywołań, a nie na grep Cascade.

// workflow 01

Znajdź przepływ autoryzacji między pakietami, bez wspominania czegokolwiek

cascade> gdzie w tym monorepo dzieje się autoryzacja?

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

 4 punkty wejścia w 4 pakietach, uszeregowane wg gęstości wywołań.
[exit 0]

Nie wspomniałeś o pliku. Nie wkleiłeś fragmentu. Cascade ma cztery istotne pliki, we właściwej kolejności, i może wykonać ugruntowaną edycję.

// workflow 02

Znajdź prawdziwą implementację, nie atrapę testową

cascade> jak normalizePhoneNumber obsługuje E.164?

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

Nazwy kłamią. Atrapy przesłaniają prawdziwy kod. Maguyva stawia prawdziwą implementację wyżej niż atrapę testową, we wszystkich pakietach.

// workflow 03

Sprawdź promień rażenia, zanim zrefaktoryzujesz

cascade> co wywołuje QueueDispatcher.publish w całym monorepo?

graph::callers(QueueDispatcher.publish)
  3 w packages/billing/*
  1 w packages/audit/*
  1 w packages/notifications/*
  1 w services/python-worker/*  ← między językami przez stub gRPC
[exit 0]

Między pakietami, a przy poliglotycznym repo — także między językami, miejsca wywołań pojawiają się od razu. Diff jest ugruntowany na rzeczywistych importerach, a nie na grep Cascade.

Konfiguracja z Windsurf

Trzy kroki. Plan Free: 3 repozytoria, Do 50 tys. zindeksowanych linii repo, bez karty.

  1. // step 01

    Zaindeksuj repo na maguyva.ai

    Wybierz monorepo, w którym najbardziej doskwierał ci brak kontekstu.

  2. // step 02

    Dodaj Maguyva jako serwer MCP w Windsurf

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

    Zadaj jedno pytanie, na które już znasz odpowiedź

    Nie zaczynaj od całej firmy. Zacznij od jednego repo i jednego sprawdzalnego pytania, np. „co wywołuje formatInvoice w różnych pakietach?”