// edytor
Cursor
Gdzie naprawdę piszesz kod.
Dla użytkowników Cursor
Cursor to edytor. 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 odbywa się uwierzytelnianie” zwraca rzeczywisty przepływ uwierzytelniania, a nie siedem atrap testowych.
Plan Free: 3 repozytoria, Do 50 tys. zindeksowanych linii repo, bez karty kredytowej.
Cursor edytuje to, na co wskażesz. Maguyva mówi agentowi, na jaki plik wskazać. Cztery elementy. Każdy ma swoje zadanie.
// edytor
Gdzie naprawdę piszesz kod.
// ręczny kontekst
Ręczny kontekst wygrywa, dopóki repo nie jest duże.
// baza kodu
Automatycznie pozyskiwane fakty o kodzie przez MCP.
// kto płaci
Bez osobnych opłat za każdego agenta. Zobacz cennik
IDE nie jest problemem. Autouzupełnianie w Cursor, edycja z AI, edycje wielu plików i .cursor/rules są świetne i już z nich korzystasz do:
.cursor/rules 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 Twoim radarze.
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. Cursor edytuje w nich bez zarzutu.
// where it breaks
Przypinanie 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 przypięciu nie wiedziałeś.
// the fix
Wklejasz 200 linii z innego pakietu do czatu, żeby dać agentowi 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. Agent edytuje na podstawie fantomowej wersji pakietu.
// the fix
Piszesz plik .cursor/rules 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 .cursor/rules dla nazewnictwa, lintowania, komend budowania. Świetne dla zachowania.
// where it breaks
.cursor/rules 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 Cursor. Warstwa kontekstu repo, która opiera się na obsłudze MCP w Cursor.
.cursor/rules nadal robi swoje. Wzmianki @ nadal robią swoje. Maguyva wypełnia lukę, której one nie wypełniają. Cursor 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 Cursor.
// workflow 01
cursor> gdzie w tym monorepo odbywa się uwierzytelnianie? 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 przypiąłeś pliku. Nie wkleiłeś fragmentu. Agent ma cztery istotne pliki, we właściwej kolejności, i może wykonać ugruntowaną edycję.
// workflow 02
cursor> 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
cursor> 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 opiera się na rzeczywistych elementach importujących ten kod, a nie na wynikach grepa w Cursor.
Trzy kroki. Plan Free: 3 repozytoria, Do 50 tys. zindeksowanych linii repo, bez karty kredytowej.
// step 01
Wybierz monorepo, w którym najbardziej doskwierał Ci brak kontekstu.
// step 02
~/.cursor/mcp.json
{
"mcpServers": {
"maguyva": {
"url": "https://maguyva.tools/mcp",
"headers": {
"Authorization": "Bearer ${env:MAGUYVA_API_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?”