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

Canonical source: https://maguyva.ai/tr/for-goose

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

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.

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

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

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

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

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

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

### 01. Bir hatayı kaynağına kadar izleyin

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

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

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

### 01. maguyva.ai’de bir repo dizinleyin

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

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

`~/.config/goose/config.yaml`

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

```

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

Goose’un [uzantı belgeleri](https://goose-docs.ai/docs/getting-started/using-extensions/) uzak uzantıları, zaman aşımlarını ve araç filtrelerini anlatır.

## Zaten bildiğiniz bir reponuzu dizinleyin.

Goose’u MCP üzerinden bağlayın, ardından doğrulayabileceğiniz bir soru sorun.
