Lompat ke konten

Untuk pengguna Cursor

Cursor mengedit filenya.
Maguyva melihat reponya.

Cursor adalah editornya. Di monorepo, agen tetap butuh peta soal file mana yang penting. Maguyva mengindeks codebase Anda dan menyajikannya kembali lewat MCP (semantic, AST, graph, dan text), jadi pertanyaan "di mana auth terjadi" mengembalikan alur auth yang sesungguhnya, bukan tujuh stub test.

Paket Free: 3 repository, Hingga 50K baris repo terindeks, tanpa kartu.

Cursor mengedit apa yang Anda tunjuk. Maguyva memberi tahu agen file mana yang harus ditunjuk.

Apa yang dilakukan tiap lapisan

Empat bagian. Masing-masing punya tugasnya.

// editor

Cursor

Tempat Anda benar-benar coding.

// konteks manual

@ mention + pin

Konteks manual menang, sampai repo-nya jadi besar.

// codebase

Maguyva

Fakta codebase otomatis lewat MCP.

// yang bayar

Workspace, bukan kursi

Agen tidak bayar kursi. Lihat harga

Cursor adalah editornya. Pakai itu.

IDE-nya bukan masalahnya. Tab completion, edit-with-AI, edit multi-file, dan .cursor/rules milik Cursor itu bagus, dan Anda sudah memakainya untuk:

  • Saran inline dan edit-with-AI di file yang terbuka.
  • Edit multi-file saat perubahannya lokal.
  • .cursor/rules untuk konvensi repo dan guardrail gaya penulisan kode.
  • @-mention untuk menarik file tertentu ke dalam konteks.

Terus lakukan itu. Tidak ada satu pun yang hilang.

Tapi di monorepo sungguhan (TypeScript dengan workspace deps, service Python, paket campuran) konteks agen langsung rusak begitu file yang relevan belum ada di radar Anda.

Perbaikan manual yang sudah Anda coba, dan di mana itu gagal

Empat perbaikan manual dipasangkan dengan mode kegagalannya. Kiri = yang Anda lakukan sekarang. Kanan = di mana itu gagal.

// the fix

// pin file-nya

Anda @-mention tiga file yang menurut Anda penting. Cursor mengedit dengan bersih di dalamnya.

// where it breaks

// pinning itu tebakan

Pinning berhasil kalau Anda sudah tahu file mana yang terlibat. Intinya tool konteks itu justru untuk memunculkan file yang tidak Anda tahu harus di-pin.

// the fix

// paste snippet-nya

Anda paste 200 baris dari package lain ke chat untuk memberi agen konteks yang cukup.

// where it breaks

// kode yang di-paste jadi basi

Snippet yang Anda paste jam 9 pagi tidak mencerminkan rebase yang teman satu tim Anda landing-kan jam 11. Agen mengedit berdasarkan versi hantu dari package tersebut.

// the fix

// tulis dokumen konteks

Anda menulis file .cursor/rules atau markdown arsitektur. Hari ini itu masih benar.

// where it breaks

// dokumentasi ngedrift lebih cepat dari kode

Apa pun yang Anda tulis manual, lama-lama meleset. Kode adalah sumber kebenarannya. Dokumen yang menjelaskan lapisan queue itu benar selama seminggu, lalu salah selamanya.

// the fix

// pertahankan file rules-nya

Anda menambahkan .cursor/rules untuk naming, lint, perintah build. Bagus untuk behavior.

// where it breaks

// aturan ≠ index

.cursor/rules adalah tempat yang tepat untuk “selalu jalankan pnpm tsc -b sebelum commit.” Itu bukan index yang bisa di-query untuk setiap symbol, file, dan call-site di monorepo Anda.

Maguyva adalah lapisan di bawahnya

Bukan pengganti Cursor. Lapisan konteks repo yang menggantung di dukungan MCP Cursor.

  • Semantic + AST + graph + text cari berdasarkan makna, struktur, dependensi, atau literal. Setiap hasil mengembalikan path file dan nomor baris.
  • Cross-package secara default call-site dan importer di semua package dalam monorepo, bukan cuma yang sedang terbuka.
  • Sadar branch Maguyva melihat versi kode yang sedang diedit Cursor.
  • Saling melengkapi, bukan bersaing .cursor/rules tetap menjalankan tugasnya. @-mention tetap menjalankan tugasnya. Maguyva mengisi celah yang tidak diisi keduanya.

Cursor mengedit file yang Anda tunjuk.

Maguyva memberi tahu agen file mana yang harus ditunjuk.

Tiga workflow monorepo

Cross-package, cross-language. Berlandaskan call graph yang sesungguhnya, bukan grep Cursor.

// workflow 01

Temukan alur auth lintas package, tanpa nge-pin apa pun

cursor> di mana autentikasi terjadi di monorepo ini?

graph::query("authentication flow")
  packages/web/src/auth/session.ts:42       middleware
  packages/api/src/auth/jwt.ts:88           verifikasi token
  packages/shared/src/auth/types.ts:12      AuthContext
  packages/admin/src/auth/admin-only.ts:31  gerbang rbac

 4 entry point di 4 package, diranking berdasarkan kepadatan call-site.
[exit 0]

Anda tidak nge-pin file apa pun. Anda tidak paste snippet apa pun. Agen sudah punya empat file yang penting, dalam urutan yang benar, dan bisa membuat edit yang berlandaskan bukti nyata.

// workflow 02

Temukan implementasi sesungguhnya, bukan stub test

cursor> bagaimana normalizePhoneNumber menangani E.164?

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

Nama itu bisa menipu. Mock menutupi kode asli. Maguyva meranking implementasi asli di atas mock test, di semua package.

// workflow 03

Cek blast radius sebelum Anda refactor

cursor> apa yang memanggil QueueDispatcher.publish di seluruh monorepo?

graph::callers(QueueDispatcher.publish)
  3 di packages/billing/*
  1 di packages/audit/*
  1 di packages/notifications/*
  1 di services/python-worker/*  ← cross-language lewat stub gRPC
[exit 0]

Cross-package, dan cross-language kalau repo Anda poliglot, call-site langsung muncul inline. Diff-nya berlandaskan importer sungguhan, bukan grep Cursor.

Setup dengan Cursor

Tiga langkah. Paket Free: 3 repository, Hingga 50K baris repo terindeks, tanpa kartu.

  1. // step 01

    Indeks repo di maguyva.ai

    Pilih monorepo yang paling sering bikin Anda pusing soal konteks.

  2. // step 02

    Tambahkan Maguyva sebagai server MCP di setting Cursor

    // ~/.cursor/mcp.json
    {
      "mcpServers": {
        "maguyva": {
          "url": "https://maguyva.tools/mcp",
          "headers": {
            "Authorization": "Bearer <your-key>"
          }
        }
      }
    }
  3. // step 03

    Ajukan satu pertanyaan yang jawabannya sudah Anda tahu

    Jangan mulai dari seluruh perusahaan Anda. Mulai dari satu repo dan satu pertanyaan yang bisa diverifikasi, seperti "apa yang memanggil formatInvoice lintas package?"