İçeriğe atla

Goose kullanıcıları için

Goose uzantılarla çalışır. Reponuzu tanıyan birini ekleyin.

Goose işini uzantılar aracılığıyla yapar ve her uzantı bir MCP sunucusudur. Maguyva, kod tabanınızı dizinleyen uzantıdır; böylece Goose dizinleri listelemek yerine bir şeyin nerede olduğunu sorar.

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

Nasıl çalışılacağı için .goosehints. Kodun şu an ne dediği için Maguyva.

Goose hakkında bilmeniz gerekenler

Goose’a özgü dört gerçek.

// yapılandırma dosyası

config.yaml

Uzantılar ~/.config/goose/config.yaml dosyasında extensions altında tanımlanır. goose configure → Add Extension aynı türden bir girdiyi sizin yerinize yazar.

// aktarım

Uzak bir eklenti

Maguyva bir streamable_http eklentisidir; bu yüzden Goose uç noktaya kendisi bağlanır: yerel süreç yok, Node.js yok. URL url alanına değil, uri alanına girer.

// anahtar

headers

Goose headers haritasını her istekle gönderir; bu yüzden anahtar Authorization başlığına girer. Goose bunu env_keys altında listelenen bir ortam değişkeninden de doldurabilir.

// araç filtresi

available_tools

Bir uzantı araçlarının yalnızca bir kısmını sunabilir: istediklerinizi available_tools altında listeleyin ya da hepsi için boş bırakın.

Goose ipuçları bir çalışma sözleşmesidir. Kullanın.

# .goosehints
- npm değil, pnpm kullan.
- Bir değişikliği bitti saymadan önce entegrasyon testlerini çalıştır.

Goose varsayılan olarak AGENTS.md ve .goosehints dosyalarını yükler: genel ipuçlarını ~/.config/goose/.goosehints dosyasından, proje ipuçlarını repodan, alt klasörlerde çalışırken de iç içe dosyaları. İpuçları için Developer uzantısı gerekir. Şunlar için doğru yerdir:

  • Araç seçimleri ve komutlar.
  • Goose’un uyması gereken kurallar.
  • Belgelerin nerede olduğu.

İpuçları projeyi tanımlar. “Buna ne bağlı?” sorusunu yanıtlamazlar.

İpuçlarının ve kabuğun yetmediği yer

Goose’un kabuk komutlarıyla, dosya dosya doldurduğu üç boşluk.

// liste harita değildir

Tanımadığı bir repoda Goose, dizin listeleri ve dosya okumalarıyla yön bulur. Her biri görev başlamadan bağlam harcar.

// grep çağıranı değil, dizgeyi bulur

Metin araması gerçek bir çağrıyı bir yorumdan, bir mock’tan ya da aynı adlı bir metottan ayıramaz.

// ipuçları geride kalır

Geçen çeyrekte yazılmış bir ipucu dosyası geçen çeyreğin yapısını anlatır. Goose yine de ona uyar.

Goose uzantısı olarak Maguyva

Tek bir extensions girdisi Goose’a şunları verir:

  • Dizinlenmiş reponuz üzerinde 11 araç anlamsal, yapısal (AST), graf ve metin araması; ayrıca sembol arama, bağımlılar ve dosya alma.
  • Dosya yolları ve satır numaralarıyla yanıtlar 285+ dilde.
  • Yalnızca okuyan araçlar Maguyva araçları dizini sorgular. Hiçbiri dosyalarınızı düzenlemez.

İpuçları Goose’a nasıl çalışacağını söyler.

Maguyva Goose’a kodun haritasını verir.

İki iş akışı

Önce harita, sonra Goose çalışsın.

// workflow 01

Bir hatayı kaynağına kadar izleyin

goose> bazı dışa aktarımlar neden sıfır satırla bitiyor?

semantic_search("export job empty result")
  src/export/runner.ts:118   flushBatch()
  src/export/filters.ts:40   applyTenantFilter()

→ Goose export paketinin tamamını değil, iki dosyayı okur.
[exit 0]

Sıralı sonuçlar, Goose bir kabuk açmadan aramayı daraltır.

// workflow 02

Yeniden düzenlemeden önce bağımlıları kontrol edin

goose> Notifier sınıfını e-posta ve SMS olarak ikiye böl

dependency_search("Notifier", dependents)
  5 pakette 11 başvuru

→ Plan ilk düzenlemeden önce on birinin hepsini kapsar.
[exit 0]

Goose bağımlıların tam listesini bir grep zinciri yerine tek bir çağrıyla alır.

Goose’ta kurulum

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

  1. // step 01

    maguyva.ai’de bir repo dizinleyin

    Yanıtları değerlendirebilmek için zaten bildiğiniz birini seçin.

  2. // step 02

    Maguyva’yı config.yaml içinde extensions altına ekleyin

    ~/.config/goose/config.yaml

    extensions:
      maguyva:
        name: maguyva
        type: streamable_http
        uri: https://maguyva.tools/mcp
        enabled: true
        headers:
          Authorization: Bearer mgv_xxxx
        timeout: 300
    
  3. // step 03

    Yer tutucuyu değiştirin ve bir oturum başlatın

    mgv_xxxx değerini API anahtarınızla değiştirin, goose session çalıştırın ve yanıtını zaten bildiğiniz bir soru sorun. YAML girintiye duyarlıdır: sekme değil, boşluk kullanın.