# Cursor sunting fail. Maguyva nampak repo.

Canonical source: https://maguyva.ai/ms/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 itu editornya. Dalam monorepo, ejen masih perlukan peta fail mana yang penting. Maguyva indeks pangkalan kod anda dan sampaikannya semula melalui MCP (semantik, AST, graf, dan teks), supaya “di mana auth berlaku” pulangkan aliran auth sebenar, bukan tujuh stub ujian.

> Cursor sunting apa yang anda tuding. Maguyva beritahu ejen fail mana nak dituding.

## Apa setiap lapisan buat

Empat bahagian. Setiap satu ada kerja.

### Cursor

Tempat anda betul-betul menulis kod.

### sebutan @ + pin

Konteks manual menang, sehingga repo jadi besar.

### Maguyva

Fakta pangkalan kod automatik melalui MCP.

### Ruang kerja, bukan pengguna

Tiada caj per pengguna untuk ejen. [Lihat harga](https://maguyva.ai/ms/pricing)

## Cursor itu editornya. Gunakannya.

IDE bukan masalahnya. Ciri tab completion, edit-with-AI, suntingan pelbagai fail, dan `.cursor/rules` Cursor memang hebat, dan anda dah pun guna untuk:

- Cadangan inline dan edit-with-AI dalam fail yang terbuka.
- Suntingan pelbagai fail bila perubahan itu setempat.
- `.cursor/rules` untuk konvensyen repo dan sekatan gaya.
- Sebutan `@` untuk tarik fail tertentu ke dalam konteks.

Teruskan buat begitu. Semua itu tak hilang.

Tapi dalam monorepo sebenar (TypeScript dengan dependensi workspace, servis Python, pakej bercampur) konteks ejen pecah sebaik saja fail yang berkaitan belum ada dalam radar anda.

## Pembetulan manual yang anda dah cuba, dan di mana ia pecah

Empat pembetulan manual dipadankan dengan mod kegagalannya. Kiri = apa yang anda buat sekarang. Kanan = di mana ia pecah.

### // pin fail

Anda sebut `@` tiga fail yang anda rasa penting. Cursor sunting dengan bersih di dalamnya.

### // pin cuma tekaan

Pin berfungsi bila anda dah tahu fail mana yang terlibat. Tujuan sebenar alat konteks ialah untuk tonjolkan fail yang anda tak tahu nak pin.

### // tampal snippet

Anda tampal 200 baris daripada pakej lain ke dalam chat untuk bagi ejen konteks yang cukup.

### // kod tampal jadi basi

Snippet yang anda tampal pukul 9 pagi tak cerminkan rebase yang rakan sepasukan anda landing pukul 11 pagi. Ejen sedang sunting berdasarkan versi hantu pakej itu.

### // tulis dokumen konteks

Anda tulis fail `.cursor/rules` atau markdown seni bina. Betul untuk hari ini.

### // dokumen menyimpang lebih laju daripada kod

Apa jua yang anda tulis dengan tangan akan menyimpang. Kod itulah sumber kebenaran. Dokumen yang terangkan lapisan queue betul untuk seminggu, kemudian salah selamanya.

### // kekalkan fail peraturan

Anda tambah `.cursor/rules` untuk penamaan, lint, arahan binaan. Bagus untuk kelakuan.

### // peraturan ≠ indeks

`.cursor/rules` ialah tempat yang betul untuk “sentiasa jalankan pnpm tsc -b sebelum commit.” Ia bukan indeks yang boleh ditanya untuk setiap simbol, fail, dan tapak panggilan dalam monorepo anda.

## Maguyva ialah lapisan di bawahnya

Bukan pengganti Cursor. Lapisan konteks repo yang bergantung pada sokongan MCP Cursor.

- **Semantik + AST + graf + teks**: cari ikut makna, struktur, kebergantungan, atau teks literal. Setiap padanan pulangkan laluan fail dan nombor baris.
- **Merentas pakej secara lalai**: tapak panggilan dan pengimport merentasi setiap pakej dalam monorepo, bukan sekadar yang sedang terbuka.
- **Sedar cabang (branch)**: Maguyva nampak versi kod yang sedang disunting oleh Cursor.
- **Melengkapi, bukan bersaing**: `.cursor/rules` terus buat kerjanya. Sebutan `@` terus buat kerjanya. Maguyva isi jurang yang mereka tak isi.

> Cursor sunting fail yang anda tuding.
> Maguyva beritahu ejen *fail mana nak dituding.*

## Tiga aliran kerja monorepo

Merentas pakej, merentas bahasa. Terbukti berdasarkan graf panggilan sebenar, bukan grep Cursor.

### 01. Cari aliran auth merentasi pakej, tanpa pin apa-apa

```text
cursor> di mana pengesahan berlaku dalam monorepo ini?

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 titik masuk merentasi 4 pakej, disusun ikut kepadatan tapak panggilan.
[exit 0]
```

Anda tak pin apa-apa fail. Anda tak tampal snippet. Ejen ada empat fail yang penting, dalam susunan yang betul, dan boleh buat suntingan berasaskan bukti.

### 02. Cari implementasi sebenar, bukan stub ujian

```text
cursor> macam mana normalizePhoneNumber uruskan E.164?

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

Nama boleh menipu. Mock membayangi kod sebenar. Maguyva susun implementasi sebenar di atas mock ujian, merentasi setiap pakej.

### 03. Semak lingkungan impak sebelum anda refactor

```text
cursor> apa yang panggil QueueDispatcher.publish merentasi monorepo?

graph::callers(QueueDispatcher.publish)
  3 dalam packages/billing/*
  1 dalam packages/audit/*
  1 dalam packages/notifications/*
  1 dalam services/python-worker/*  ← merentas bahasa melalui stub gRPC
[exit 0]
```

Merentas pakej, dan merentas bahasa bila repo anda poliglot, tapak panggilan tertonjol terus. Diff itu berasaskan pengimport sebenar, bukan grep Cursor.

## Sediakan Cursor

Tiga langkah. Peringkat Free: 3 repositori, Sehingga 50K baris repo terindeks, tanpa kad.

### 01. Indeks repo di maguyva.ai

Pilih monorepo yang paling menyusahkan anda kerana kekurangan konteks.

### 02. Tambah Maguyva sebagai pelayan MCP dalam tetapan Cursor

`~/.cursor/mcp.json`

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

### 03. Tanya satu soalan yang anda dah tahu jawapannya

Jangan mula dengan seluruh syarikat anda. Mula dengan satu repo dan satu soalan yang boleh disahkan, seperti “apa yang panggil `formatInvoice` merentasi pakej?”

## Indeks satu repo yang anda dah kenal.

Uji satu soalan yang anda boleh sahkan jawapannya.
