# Devin Desktop mengedit filenya. Maguyva melihat reponya.

Canonical source: https://maguyva.ai/id/for-windsurf

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

Devin Desktop (IDE Windsurf) adalah editornya dan Devin Local adalah agennya. Di monorepo, agen tetap butuh peta soal file mana yang penting. Maguyva mengindeks codebase Anda dan menyajikannya kembali lewat MCP (semantik, AST, graf, dan teks), jadi pertanyaan "di mana auth terjadi" mengembalikan alur auth yang sesungguhnya, bukan tujuh stub test.

> Devin Desktop mengedit apa yang Anda tunjuk. Maguyva memberi tahu Devin Local file mana yang harus ditunjuk.

## Apa yang dilakukan tiap lapisan

Empat bagian. Masing-masing punya tugasnya.

### Devin Desktop

Tempat Anda dan Devin Local benar-benar bekerja.

### @ mention + .devin/rules/

Konteks manual menang, sampai repo-nya jadi besar.

### Maguyva

Fakta codebase yang diperoleh otomatis lewat MCP.

### Workspace, bukan pengguna

Tidak ada biaya terpisah per agen. [Lihat harga](https://maguyva.ai/id/pricing)

## Devin Desktop adalah editornya. Pakai itu.

IDE-nya bukan masalahnya. Devin Local, tab completion, edit multi-file, dan `.devin/rules/` itu bagus, dan Anda sudah memakainya untuk:

- Saran inline dan edit Devin Local di file yang terbuka.
- Edit multi-file saat perubahannya lokal.
- `.devin/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 Devin Local.

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

### // sebutkan file-nya

Anda `@`-mention tiga file yang menurut Anda penting. Devin Local mengedit dengan bersih di dalamnya.

### // menyebutkan itu tebakan

Ini berhasil kalau Anda sudah tahu file mana yang terlibat. Intinya tool konteks itu justru untuk memunculkan file yang tidak Anda tahu harus disebutkan.

### // paste snippet-nya

Anda paste 200 baris dari package lain ke Devin Local untuk memberinya konteks yang cukup.

### // 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. Devin Local mengedit berdasarkan versi hantu dari package tersebut.

### // tulis dokumen konteks

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

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

### // pertahankan file rules-nya

Anda menambahkan `.devin/rules/` untuk naming, lint, dan perintah build. Bagus untuk behavior.

### // aturan ≠ index

`.devin/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 Devin Desktop. Lapisan konteks repo yang terhubung melalui dukungan MCP Devin Local.

- **Semantik + AST + graf + teks**: 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 dibuka Devin Local.
- **Memperhitungkan branch**: Maguyva melihat versi kode yang sedang diedit Devin Local.
- **Saling melengkapi, bukan bersaing**: `.devin/rules/` tetap menjalankan tugasnya. `@`-mention tetap menjalankan tugasnya. Maguyva mengisi celah yang tidak diisi keduanya.

> Devin Local mengedit file yang Anda tunjuk.
> Maguyva memberi tahu agen *file mana yang harus ditunjuk.*

## Tiga workflow monorepo

Cross-package, cross-language. Berlandaskan graf panggilan yang sesungguhnya, bukan grep Devin Local.

### 01. Temukan alur auth lintas package, tanpa menyebutkan apa pun

```text
devin> 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 menyebutkan file apa pun. Anda tidak paste snippet apa pun. Devin Local sudah punya empat file yang penting, dalam urutan yang benar, dan bisa membuat edit yang berlandaskan bukti nyata.

### 02. Temukan implementasi sesungguhnya, bukan stub test

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

### 03. Cek cakupan dampak sebelum Anda refactor

```text
devin> 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 Devin Local.

## Setup dengan Devin Desktop

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

### 01. Indeks repo di maguyva.ai

Pilih monorepo yang paling sering bikin Anda pusing soal konteks.

### 02. Tambahkan Maguyva sebagai server MCP di Devin Desktop

`~/.config/devin/mcp_config.json`

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

### 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?"

## Indeks satu repo yang sudah Anda kenal.

Uji satu pertanyaan yang jawabannya bisa Anda verifikasi.
