// editör
Cursor
Gerçekten kod yazdığınız yer.
Cursor kullanıcıları için
Cursor, editördür. Bir monorepo'da ajanın yine de hangi dosyanın önemli olduğuna dair bir haritaya ihtiyacı vardır. Maguyva kod tabanınızı dizinler ve MCP üzerinden (anlamsal, AST, grafik ve metin) geri sunar; böylece “kimlik doğrulama nerede yapılıyor” sorusu yedi test taslağı değil, gerçek kimlik doğrulama akışını döndürür.
Free katmanı: 3 repo, 50K'ya kadar indekslenmiş repo satırı, kart gerektirmez.
Cursor işaret ettiğiniz yeri düzenler. Maguyva ajana hangi dosyayı işaret edeceğini söyler.Dört parça. Her birinin bir işi var.
// editör
Gerçekten kod yazdığınız yer.
// manuel bağlam
Repo büyüyene kadar manuel bağlam kazanır.
// kod tabanı
MCP üzerinden otomatik kod tabanı bilgileri.
// kim ödüyor
Ajanlar koltuk için ödemez. Fiyatlandırmayı görün
Sorun IDE değil. Cursor’un tab tamamlama, AI ile düzenleme, çoklu dosya düzenlemeleri ve .cursor/rules özellikleri mükemmel ve bunları zaten şunlar için kullanıyorsunuz:
.cursor/rules.@-anmaları.Bunu yapmaya devam edin. Hiçbiri ortadan kalkmıyor.
Ancak gerçek bir monorepo’da (çalışma alanı bağımlılıklarıyla TypeScript, Python servisleri, karışık paketler) ilgili dosya henüz radarınızda değilken ajan bağlamı bozulur.
Dört manuel çözüm, başarısızlık modlarıyla eşleştirilmiş. Sol = bugün yaptığınız. Sağ = nerede bozulduğu.
// the fix
Önemli olduğunu düşündüğünüz üç dosyayı @ ile anıyorsunuz. Cursor bunların içinde temiz bir şekilde düzenleme yapıyor.
// where it breaks
Sabitleme, hangi dosyaların dahil olduğunu zaten biliyorsanız işe yarar. Bağlam araçlarının bütün amacı, sabitlemeyi bilmediğiniz dosyaları ortaya çıkarmaktır.
// the fix
Ajana yeterli bağlam vermek için başka bir paketten 200 satırı sohbete yapıştırıyorsunuz.
// where it breaks
Sabah 9’da yapıştırdığınız kod parçası, ekip arkadaşınızın saat 11’de yaptığı rebase’i yansıtmaz. Ajan, paketin hayalet bir sürümüne karşı düzenleme yapıyordur.
// the fix
Bir .cursor/rules dosyası ya da bir mimari markdown’u yazıyorsunuz. Bugün doğru.
// where it breaks
Elle yazdığınız her şey savrulur. Kod, gerçeğin kaynağıdır. Kuyruk katmanını açıklayan bir doküman bir hafta doğrudur, sonra sonsuza dek yanlış kalır.
// the fix
Adlandırma, lint ve derleme komutları için .cursor/rules ekliyorsunuz. Davranış için harika.
// where it breaks
.cursor/rules, “commit’lerden önce her zaman pnpm tsc -b çalıştır” gibi bir kural için doğru yerdir. Monorepo’nuzdaki her sembolün, dosyanın ve çağrı noktasının sorgulanabilir bir dizini değildir.
Cursor’un yerini almaz. Cursor’un MCP desteğine takılan repo bağlamı katmanıdır.
.cursor/rules işini yapmaya devam eder. @-anmaları işlerini yapmaya devam eder. Maguyva, onların doldurmadığı boşluğu doldurur.Cursor işaret ettiğiniz dosyayı düzenler.
Maguyva ajana hangi dosyayı işaret edeceğini söyler.
Paketler arası, diller arası. Cursor’un grep’ine değil, gerçek çağrı grafiğine temellendirilmiş.
// workflow 01
cursor> where does authentication happen in this 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 entry points across 4 packages, ranked by call-site density. [exit 0]
Bir dosya sabitlemediniz. Bir kod parçası yapıştırmadınız. Ajan, önemli olan dört dosyaya doğru sıralamayla sahip ve temellendirilmiş bir düzenleme yapabilir.
// workflow 02
cursor> how does normalizePhoneNumber handle E.164? semantic::query("normalize phone E.164") packages/shared/util/phone.ts:88 normalizePhoneNumber() ← real impl packages/api/test/phone.spec.ts:14 jest.mock(...) ← stub [exit 0]
İsimler yalan söyler. Mock’lar gerçek kodu gölgeler. Maguyva, her pakette gerçek uygulamayı test mock’unun üzerinde sıralar.
// workflow 03
cursor> what calls QueueDispatcher.publish across the monorepo? graph::callers(QueueDispatcher.publish) 3 in packages/billing/* 1 in packages/audit/* 1 in packages/notifications/* 1 in services/python-worker/* ← cross-language via gRPC stub [exit 0]
Paketler arası, ve çoklu dilli bir reponuz varsa diller arası olarak, çağrı noktaları satır içinde ortaya çıkar. Diff, Cursor’un grep’ine değil, gerçek import edenlere temellendirilir.
Üç adım. Free katmanı: 3 repo, 50K'ya kadar indekslenmiş repo satırı, kart gerektirmez.
// step 01
Bağlam sıkıntısını en çok hissettiğiniz monorepo’yu seçin.
// step 02
// ~/.cursor/mcp.json
{
"mcpServers": {
"maguyva": {
"url": "https://maguyva.tools/mcp",
"headers": {
"Authorization": "Bearer <your-key>"
}
}
}
}// step 03
Tüm şirketinizle başlamayın. Bir repo ve doğrulanabilir bir soruyla başlayın, örneğin “paketler arasında formatInvoice’u ne çağırıyor?” gibi.