Langkau ke kandungan

Untuk pengguna Cursor

Cursor sunting fail.
Maguyva nampak repo.

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.

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

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

Apa setiap lapisan buat

Empat bahagian. Setiap satu ada kerja.

// editor

Cursor

Tempat anda betul-betul menulis kod.

// konteks manual

sebutan @ + pin

Konteks manual menang, sehingga repo jadi besar.

// pangkalan kod

Maguyva

Fakta pangkalan kod automatik melalui MCP.

// siapa bayar

Ruang kerja, bukan seat

Ejen tak bayar seat. Lihat harga

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.

// the fix

// pin fail

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

// where it breaks

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

// the fix

// tampal snippet

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

// where it breaks

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

// the fix

// tulis dokumen konteks

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

// where it breaks

// dokumen menyimpang lebih laju daripada kod

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

// the fix

// kekalkan fail peraturan

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

// where it breaks

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

// workflow 01

Cari aliran auth merentasi pakej, tanpa pin apa-apa

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 yang terbukti.

// workflow 02

Cari implementasi sebenar, bukan stub ujian

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.

// workflow 03

Semak blast radius sebelum anda refactor

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 terbukti berdasarkan pengimport sebenar, bukan grep Cursor.

Sediakan Cursor

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

  1. // step 01

    Indeks repo di maguyva.ai

    Pilih monorepo yang paling anda rasa kesakitan konteksnya.

  2. // step 02

    Tambah Maguyva sebagai pelayan MCP dalam tetapan Cursor

    // ~/.cursor/mcp.json
    {
      "mcpServers": {
        "maguyva": {
          "url": "https://maguyva.tools/mcp",
          "headers": {
            "Authorization": "Bearer <your-key>"
          }
        }
      }
    }
  3. // step 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?”