# Goose berjalan di atas extension. Tambahkan satu yang mengenal repo Anda.

Canonical source: https://maguyva.ai/id/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 bekerja lewat extension, dan setiap extension adalah server MCP. Maguyva adalah extension yang mengindeks codebase Anda, jadi Goose menanyakan letak sesuatu alih-alih mendaftar isi direktori.

> Pakai .goosehints untuk cara bekerja. Pakai Maguyva untuk isi kode saat ini.

## Yang perlu diketahui soal Goose

Empat fakta khusus Goose.

### config.yaml

Extension ditaruh di bawah `extensions` di `~/.config/goose/config.yaml`. `goose configure` → Add Extension menuliskan entri sejenis untuk Anda.

### Ekstensi jarak jauh

Maguyva adalah ekstensi `streamable_http`, jadi Goose terhubung sendiri ke endpoint: tanpa proses lokal, tanpa Node.js. URL ditaruh di `uri`, bukan `url`.

### headers

Goose mengirim peta `headers` di setiap permintaan, jadi kunci masuk ke header `Authorization`. Goose juga bisa mengisinya dari variabel lingkungan yang tercantum di `env_keys`.

### available_tools

Extension bisa membuka sebagian alatnya saja: daftarkan yang Anda inginkan di bawah `available_tools`, atau biarkan kosong untuk semuanya.

## Goose hints adalah kesepakatan kerja. Pakai itu.

```text
# .goosehints
- Pakai pnpm, bukan npm.
- Jalankan integration test sebelum menyatakan perubahan selesai.
```

Secara default Goose memuat `AGENTS.md` dan `.goosehints`: hint global dari `~/.config/goose/.goosehints`, hint proyek dari repo, dan berkas bersarang saat bekerja di subfolder. Hint membutuhkan extension Developer. Hint adalah tempat yang tepat untuk:

- Pilihan tooling dan perintah.
- Konvensi yang harus diikuti Goose.
- Letak dokumentasi.

Hint menggambarkan proyeknya. Hint tidak menjawab “apa yang bergantung pada ini?”

## Saat hint dan shell tidak cukup

Tiga celah yang diisi Goose dengan perintah shell, satu berkas per kali.

### // daftar bukan peta

Di repo yang belum dikenal, Goose berorientasi dengan daftar direktori dan pembacaan berkas. Masing-masing menghabiskan konteks sebelum tugasnya dimulai.

### // grep menemukan string, bukan pemanggil

Pencarian teks tidak bisa membedakan pemanggilan sungguhan dari komentar, mock, atau method bernama sama.

### // hint tertinggal

Berkas hint yang ditulis kuartal lalu menggambarkan struktur kuartal lalu. Goose tetap mengikutinya.

## Maguyva sebagai extension Goose

Satu entri extensions memberi Goose:

- **11 alat di atas repo yang terindeks**: pencarian semantik, struktural (AST), graf, dan teks, ditambah pencarian simbol, dependen, dan pengambilan berkas.
- **Jawaban dengan jalur berkas dan nomor baris**: di 285+ bahasa.
- **Alat yang hanya membaca**: Alat Maguyva menanyai index. Tidak satu pun mengedit berkas Anda.

> Hint memberi tahu Goose *cara bekerja*.
> Maguyva memberi Goose *peta kode*.

## Dua alur kerja

Peta dulu, lalu biarkan Goose bekerja.

### 01. Telusuri bug sampai ke sumbernya

```text
goose> kenapa sebagian ekspor selesai dengan nol baris?

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

→ Goose membaca dua berkas, bukan seluruh package export.
[exit 0]
```

Hasil berperingkat mempersempit pencarian sebelum Goose membuka shell.

### 02. Periksa dependen sebelum refactor

```text
goose> pecah class Notifier menjadi email dan SMS

dependency_search("Notifier", dependents)
  11 referensi di 5 package

→ Rencana mencakup kesebelasnya sebelum edit pertama.
[exit 0]
```

Goose mendapat daftar dependen lengkap dalam satu panggilan, bukan rangkaian grep.

## Setup di Goose

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

### 01. Indeks repo di maguyva.ai

Pilih yang sudah Anda kenal, agar Anda dapat menilai jawabannya.

### 02. Tambahkan Maguyva ke extensions di config.yaml

`~/.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. Ganti placeholder dan mulai sesi

Ganti `mgv_xxxx` dengan kunci API Anda, jalankan `goose session`, lalu ajukan satu pertanyaan yang jawabannya sudah Anda ketahui. YAML peka indentasi: pakai spasi, bukan tab.

[Dokumentasi extension](https://goose-docs.ai/docs/getting-started/using-extensions/) Goose membahas extension jarak jauh, timeout, dan filter alat.

## Indeks satu repo yang sudah Anda kenal.

Hubungkan Goose lewat MCP, lalu ajukan satu pertanyaan yang bisa Anda periksa.
