// edytor
Windsurf
Gdzie ty i Cascade naprawdę pracujecie.
Dla użytkowników Windsurf
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ć.Cztery elementy. Każdy ma swoje zadanie.
// edytor
Gdzie ty i Cascade naprawdę pracujecie.
// ręczny kontekst
Ręczny kontekst wygrywa, dopóki repo nie jest duże.
// baza kodu
Automatyczne fakty o kodzie przez MCP.
// kto płaci
Agenci nie płacą za stanowiska. Zobacz cennik
IDE nie jest problemem. Cascade, autouzupełnianie, edycje wielu plików i .windsurfrules są świetne i już z nich korzystasz do:
.windsurfrules dla konwencji repo i reguł stylu.@, 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.
Cztery ręczne obejścia zestawione z ich trybem awarii. Lewo = co robisz dzisiaj. Prawo = gdzie to zawodzi.
// the fix
Wzmiankujesz @ trzy pliki, które twoim zdaniem mają znaczenie. Cascade edytuje w nich bez zarzutu.
// where it breaks
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
Wklejasz 200 linii z innego pakietu do Cascade, żeby dać mu wystarczający kontekst.
// where it breaks
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
Piszesz plik .windsurfrules lub markdown z architekturą. Dziś jest aktualny.
// where it breaks
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
Dodajesz .windsurfrules dla nazewnictwa, lintowania i komend budowania. Świetne dla zachowania.
// where it breaks
.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.
To nie zamiennik Windsurf. Warstwa kontekstu repo, która opiera się na obsłudze MCP w Cascade.
.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ć.
Między pakietami, między językami. Ugruntowane na rzeczywistym grafie wywołań, a nie na grep Cascade.
// workflow 01
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
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
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.
Trzy kroki. Plan Free: 3 repozytoria, Do 50 tys. zindeksowanych linii repo, bez karty.
// step 01
Wybierz monorepo, w którym najbardziej doskwierał ci brak kontekstu.
// step 02
// ~/.codeium/windsurf/mcp_config.json
{
"mcpServers": {
"maguyva": {
"serverUrl": "https://maguyva.tools/mcp",
"headers": {
"Authorization": "Bearer <your-key>"
}
}
}
}// step 03
Nie zaczynaj od całej firmy. Zacznij od jednego repo i jednego sprawdzalnego pytania, np. „co wywołuje formatInvoice w różnych pakietach?”