# Cursor dosyayı düzenler. Maguyva reponun tamamını görür.

Canonical source: https://maguyva.ai/tr/for-cursor

License: text under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/); code samples under [MIT-0](https://opensource.org/license/mit-0); the Maguyva name, logos, brand assets and other code are not covered. Details: [maguyva.ai/license](https://maguyva.ai/license).

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, graf 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.

> Cursor işaret ettiğiniz yeri düzenler. Maguyva ajana hangi dosyayı işaret edeceğini söyler.

## Her katman ne yapar

Dört parça. Her birinin bir işi var.

### Cursor

Gerçekten kod yazdığınız yer.

### @ ile anma + sabitleme

Repo büyüyene kadar manuel bağlam kazanır.

### Maguyva

MCP üzerinden otomatik kod tabanı bilgileri.

### Koltuk değil, çalışma alanı

Ajanlar koltuk için ödemez. [Fiyatlandırmayı görün](https://maguyva.ai/tr/pricing)

## Cursor editördür. Onu kullanı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:

- Açık dosyada satır içi öneriler ve AI ile düzenleme.
- Değişiklik yerel olduğunda çoklu dosya düzenlemeleri.
- Repo kuralları ve stil sınırları için `.cursor/rules`.
- Belirli bir dosyayı bağlama çekmek için `@`-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.

## Zaten denediğiniz manuel çözümler ve nerede bozuldukları

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.

### // dosyaları sabitleyin

Önemli olduğunu düşündüğünüz üç dosyayı `@` ile anıyorsunuz. Cursor bunların içinde temiz bir şekilde düzenleme yapıyor.

### // sabitleme bir tahmindir

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.

### // kod parçalarını yapıştırın

Ajana yeterli bağlam vermek için başka bir paketten 200 satırı sohbete yapıştırıyorsunuz.

### // yapıştırılan kod eskir

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.

### // bir bağlam dokümanı yazın

Bir `.cursor/rules` dosyası ya da bir mimari markdown’u yazıyorsunuz. Bugün doğru.

### // dokümanlar koddan daha hızlı savrulur

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.

### // kural dosyalarını koruyun

Adlandırma, lint ve derleme komutları için `.cursor/rules` ekliyorsunuz. Davranış için harika.

### // kurallar ≠ dizin

`.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.

## Maguyva altındaki katmandır

Cursor’un yerini almaz. Cursor’un MCP desteğine takılan repo bağlamı katmanıdır.

- **Anlamsal + AST + graf + metin**: anlama, yapıya, bağımlılığa veya harfi harfine göre arayın. Her sonuç bir dosya yolu ve satır numarası döndürür.
- **Varsayılan olarak paketler arası**: yalnızca şu anda açık olan pakette değil, monorepo’daki her pakette çağrı noktaları ve import edenler.
- **Dal farkında**: Maguyva, Cursor’un düzenlediği kod sürümünü görür.
- **Rakip değil, tamamlayıcı**: `.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.

## Üç monorepo iş akışı

Paketler arası, diller arası. Cursor’un grep’ine değil, gerçek çağrı grafına temellendirilmiş.

### 01. Hiçbir şey sabitlemeden paketler arasında kimlik doğrulama akışını bulun

```text
cursor> Bu monorepo'da kimlik doğrulama nerede yapılıyor?

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 pakette 4 giriş noktası, çağrı noktası yoğunluğuna göre sıralandı.
[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.

### 02. Test taslağını değil, gerçek uygulamayı bulun

```text
cursor> normalizePhoneNumber, E.164 biçimini nasıl işliyor?

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.

### 03. Refactor yapmadan önce etki yarıçapını kontrol edin

```text
cursor> Monorepo genelinde QueueDispatcher.publish metodunu ne çağırıyor?

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.

## Cursor ile kurulum

Üç adım. Free katmanı: 3 repo, 50K'ya kadar dizinlenmiş repo satırı, kart gerektirmez.

### 01. maguyva.ai’de bir repo dizinleyin

Bağlam sıkıntısını en çok hissettiğiniz monorepo’yu seçin.

### 02. Cursor ayarlarında Maguyva’yı bir MCP sunucusu olarak ekleyin

`~/.cursor/mcp.json`

```json
{
  "mcpServers": {
    "maguyva": {
      "url": "https://maguyva.tools/mcp",
      "headers": {
        "Authorization": "Bearer ${env:MAGUYVA_API_KEY}"
      }
    }
  }
}
```

### 03. Yanıtını zaten bildiğiniz bir soru sorun

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.

## Zaten bildiğiniz bir reponuzu dizinleyin.

Yanıtını doğrulayabileceğiniz bir soruyu test edin.
