Langkau ke kandungan

Untuk pengguna Windsurf

Windsurf sunting fail.
Maguyva nampak repo.

Windsurf itu editornya dan Cascade ejennya. 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.

Windsurf sunting apa yang anda tuding. Maguyva beritahu Cascade fail mana nak dituding.

Apa setiap lapisan buat

Empat bahagian. Setiap satu ada kerja.

// editor

Windsurf

Tempat anda dan Cascade betul-betul bekerja.

// konteks manual

sebutan @ + .windsurfrules

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

Windsurf itu editornya. Gunakannya.

IDE bukan masalahnya. Cascade, ciri tab completion, suntingan pelbagai fail, dan .windsurfrules memang hebat, dan anda dah pun guna untuk:

  • Cadangan inline dan suntingan Cascade dalam fail yang terbuka.
  • Suntingan pelbagai fail bila perubahan itu setempat.
  • .windsurfrules 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 Cascade.

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

// sebut fail

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

// where it breaks

// sebutan cuma tekaan

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

// the fix

// tampal snippet

Anda tampal 200 baris daripada pakej lain ke dalam Cascade untuk bagi ia 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. Cascade sedang sunting berdasarkan versi hantu pakej itu.

// the fix

// tulis dokumen konteks

Anda tulis fail .windsurfrules 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 .windsurfrules untuk penamaan, lint, dan arahan binaan. Bagus untuk kelakuan.

// where it breaks

// peraturan ≠ indeks

.windsurfrules 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 Windsurf. Lapisan konteks repo yang bergantung pada sokongan MCP Cascade.

  • 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 dibuka Cascade.
  • Sedar cabang (branch) Maguyva nampak versi kod yang sedang disunting oleh Cascade.
  • Melengkapi, bukan bersaing .windsurfrules terus buat kerjanya. Sebutan @ terus buat kerjanya. Maguyva isi jurang yang mereka tak isi.

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

// workflow 01

Cari aliran auth merentasi pakej, tanpa sebut apa-apa

cascade> 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 sebut apa-apa fail. Anda tak tampal snippet. Cascade ada empat fail yang penting, dalam susunan yang betul, dan boleh buat suntingan yang terbukti.

// workflow 02

Cari implementasi sebenar, bukan stub ujian

cascade> 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

cascade> 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 Cascade.

Sediakan Windsurf

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 Windsurf

    // ~/.codeium/windsurf/mcp_config.json
    {
      "mcpServers": {
        "maguyva": {
          "serverUrl": "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?”