İçeriğe atla

Devin Desktop kullanıcıları için

Devin Desktop dosyayı düzenler.
Maguyva reponun tamamını görür.

Devin Desktop (Windsurf IDE'si), editördür ve Devin Local ajandır. Bir monorepo’da ajanın yine de hangi dosyanın önemli olduğuna dair bir haritaya ihtiyacı vardır. Maguyva kod tabanınızı dizinler ve MCP üzerinden (anlamsal, AST, graf ve metin) geri sunar; böylece “kimlik doğrulama nerede yapılıyor” sorusu yedi test taslağı değil, gerçek kimlik doğrulama akışını döndürür.

Free katmanı: 3 repo, 50K'ya kadar dizinlenmiş repo satırı, kart gerektirmez.

Devin Desktop işaret ettiğiniz yeri düzenler. Maguyva Devin Local’e hangi dosyayı işaret edeceğini söyler.

Her katman ne yapar

Dört parça. Her birinin bir işi var.

// editör

Devin Desktop

Sizin ve Devin Local’in gerçekten çalıştığınız yer.

// manuel bağlam

@ ile anma + .devin/rules/

Repo büyüyene kadar manuel bağlam kazanır.

// kod tabanı

Maguyva

MCP üzerinden otomatik kod tabanı bilgileri.

Devin Desktop editördür. Onu kullanın.

Sorun IDE değil. Devin Local, tab tamamlama, çoklu dosya düzenlemeleri ve .devin/rules/ mükemmel ve bunları zaten şunlar için kullanıyorsunuz:

  • Açık dosyada satır içi öneriler ve Devin Local düzenlemeleri.
  • Değişiklik yerel olduğunda çoklu dosya düzenlemeleri.
  • Repo kuralları ve stil sınırları için .devin/rules/.
  • Belirli bir dosyayı bağlama çekmek için @-anmaları.

Bunu yapmaya devam edin. Hiçbiri ortadan kalkmıyor.

Ancak gerçek bir monorepo’da (çalışma alanı bağımlılıklarıyla TypeScript, Python servisleri, karışık paketler) ilgili dosya henüz Devin Local’in radarında değilken ajan bağlamı bozulur.

Zaten denediğiniz manuel çözümler ve nerede bozuldukları

Dört manuel çözüm, başarısızlık modlarıyla eşleştirilmiş. Sol = bugün yaptığınız. Sağ = nerede bozulduğu.

// the fix

// dosyalardan bahsedin

Önemli olduğunu düşündüğünüz üç dosyayı @ ile anıyorsunuz. Devin Local bunların içinde temiz bir şekilde düzenleme yapıyor.

// where it breaks

// bahsetmek bir tahmindir

Hangi dosyaların dahil olduğunu zaten biliyorsanız işe yarar. Bağlam araçlarının bütün amacı, bahsetmeyi bilmediğiniz dosyaları ortaya çıkarmaktır.

// the fix

// kod parçalarını yapıştırın

Devin Local’e yeterli bağlam vermek için başka bir paketten 200 satırı yapıştırıyorsunuz.

// where it breaks

// yapıştırılan kod eskir

Sabah 9’da yapıştırdığınız kod parçası, ekip arkadaşınızın saat 11’de yaptığı rebase’i yansıtmaz. Devin Local, paketin hayalet bir sürümüne karşı düzenleme yapıyordur.

// the fix

// bir bağlam dokümanı yazın

Bir .devin/rules/ dosyası ya da bir mimari markdown’u yazıyorsunuz. Bugün doğru.

// where it breaks

// dokümanlar koddan daha hızlı savrulur

Elle yazdığınız her şey savrulur. Kod, gerçeğin kaynağıdır. Kuyruk katmanını açıklayan bir doküman bir hafta doğrudur, sonra sonsuza dek yanlış kalır.

// the fix

// kural dosyalarını koruyun

Adlandırma, lint ve derleme komutları için .devin/rules/ ekliyorsunuz. Davranış için harika.

// where it breaks

// kurallar ≠ dizin

.devin/rules/, “commit’lerden önce her zaman pnpm tsc -b çalıştır” gibi bir kural için doğru yerdir. Monorepo’nuzdaki her sembolün, dosyanın ve çağrı noktasının sorgulanabilir bir dizini değildir.

Maguyva altındaki katmandır

Devin Desktop’ün yerini almaz. Devin Local’in MCP desteğine takılan repo bağlamı katmanıdır.

  • Anlamsal + AST + graf + metin anlama, yapıya, bağımlılığa veya harfi harfine göre arayın. Her sonuç bir dosya yolu ve satır numarası döndürür.
  • Varsayılan olarak paketler arası yalnızca Devin Local’in açık olduğu pakette değil, monorepo’daki her pakette çağrı noktaları ve import edenler.
  • Dal farkında Maguyva, Devin Local’in düzenlediği kod sürümünü görür.
  • Rakip değil, tamamlayıcı .devin/rules/ işini yapmaya devam eder. @-anmaları kendi işlerini yapmaya devam eder. Maguyva, onların doldurmadığı boşluğu doldurur.

Devin Local işaret ettiğiniz dosyayı düzenler.

Maguyva ajana hangi dosyayı işaret edeceğini söyler.

Üç monorepo iş akışı

Paketler arası, diller arası. Devin Local’in grep’ine değil, gerçek çağrı grafına temellendirilmiş.

// workflow 01

Hiçbir şeyden bahsetmeden paketler arasında kimlik doğrulama akışını bulun

devin> Bu monorepo'da kimlik doğrulama nerede yapılıyor?

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 pakette 4 giriş noktası, çağrı noktası yoğunluğuna göre sıralandı.
[exit 0]

Bir dosyadan bahsetmediniz. Bir kod parçası yapıştırmadınız. Devin Local, önemli olan dört dosyaya doğru sıralamayla sahip ve temellendirilmiş bir düzenleme yapabilir.

// workflow 02

Test taslağını değil, gerçek uygulamayı bulun

devin> normalizePhoneNumber, E.164 biçimini nasıl işliyor?

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

İsimler yalan söyler. Mock’lar gerçek kodu gölgeler. Maguyva, her pakette gerçek uygulamayı test mock’unun üzerinde sıralar.

// workflow 03

Refactor yapmadan önce etki yarıçapını kontrol edin

devin> Monorepo genelinde QueueDispatcher.publish metodunu ne çağırıyor?

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

Paketler arası, ve çoklu dilli bir reponuz varsa diller arası olarak, çağrı noktaları satır içinde ortaya çıkar. Diff, Devin Local’in grep’ine değil, gerçek import edenlere temellendirilir.

Devin Desktop ile kurulum

Üç adım. Free katmanı: 3 repo, 50K'ya kadar dizinlenmiş repo satırı, kart gerektirmez.

  1. // step 01

    maguyva.ai’de bir repo dizinleyin

    Bağlam sıkıntısını en çok hissettiğiniz monorepo’yu seçin.

  2. // step 02

    Devin Desktop’te Maguyva’yı bir MCP sunucusu olarak ekleyin

    ~/.config/devin/mcp_config.json

    {
      "mcpServers": {
        "maguyva": {
          "url": "https://maguyva.tools/mcp",
          "headers": {
            "Authorization": "Bearer ${env:MAGUYVA_API_KEY}"
          }
        }
      }
    }
  3. // step 03

    Yanıtını zaten bildiğiniz bir soru sorun

    Tüm şirketinizle başlamayın. Bir repo ve doğrulanabilir bir soruyla başlayın, örneğin “paketler arasında formatInvoice’u ne çağırıyor?” gibi.