# Tumatakbo ang Goose sa mga extension. Magdagdag ng isang kilala ang repo mo.

Canonical source: https://maguyva.ai/fil/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).

Ginagawa ng Goose ang trabaho nito sa pamamagitan ng mga extension, at bawat extension ay isang MCP server. Ang Maguyva ang extension na nag-i-index ng codebase mo, kaya nagtatanong ang Goose kung nasaan ang mga bagay sa halip na maglista ng mga directory.

> Gamitin ang .goosehints para sa paraan ng pagtatrabaho. Gamitin ang Maguyva para sa sinasabi ng code ngayon.

## Ang kailangang malaman tungkol sa Goose

Apat na fact na partikular sa Goose.

### config.yaml

Nasa ilalim ng `extensions` sa `~/.config/goose/config.yaml` ang mga extension. Ang `goose configure` → Add Extension ang magsusulat ng kaparehong entry para sa iyo.

### Isang remote extension

Isang `streamable_http` extension ang Maguyva, kaya ang Goose mismo ang kumokonekta sa endpoint: walang lokal na proseso, walang Node.js. Sa `uri` inilalagay ang URL, hindi sa `url`.

### headers

Ipinapadala ng Goose ang `headers` map sa bawat request, kaya sa `Authorization` header inilalagay ang key. Kaya rin itong punan ng Goose mula sa environment variable na nakalista sa `env_keys`.

### available_tools

Puwedeng ilantad ng isang extension ang bahagi lang ng mga tool nito: ilista ang gusto mo sa ilalim ng `available_tools`, o iwanang walang laman para sa lahat.

## Working agreement ang Goose hints. Gamitin ang mga ito.

```text
# .goosehints
- Gamitin ang pnpm, hindi npm.
- Patakbuhin ang integration tests bago mo sabihing tapos na ang isang pagbabago.
```

By default, nilo-load ng Goose ang `AGENTS.md` at `.goosehints`: global hints mula sa `~/.config/goose/.goosehints`, project hints mula sa repo, at mga nested file habang nagtatrabaho ito sa mga subfolder. Kailangan ng hints ang Developer extension. Ang mga ito ang tamang lugar para sa:

- Mga pagpipilian sa tooling at mga command.
- Mga convention na dapat sundin ng Goose.
- Kung nasaan ang dokumentasyon.

Inilalarawan ng hints ang project. Hindi nito sinasagot ang “ano ang nakadepende rito?”

## Kapag kulang na ang hints at ang shell

Tatlong puwang na pinupunan ng Goose gamit ang mga shell command, isang file bawat beses.

### // hindi mapa ang listing

Sa hindi pamilyar na repo, nag-o-orient ang Goose gamit ang mga directory listing at pagbabasa ng file. Bawat isa ay gumagastos ng context bago pa magsimula ang task.

### // string ang nahahanap ng grep, hindi caller

Hindi kayang ihiwalay ng text search ang totoong call sa isang comment, isang mock, o isang method na may parehong pangalan.

### // naiiwan ang hints

Ang hints file na isinulat noong nakaraang quarter ay naglalarawan ng layout noong nakaraang quarter. Sinusunod pa rin ito ng Goose.

## Maguyva bilang Goose extension

Ang isang extensions entry ay nagbibigay sa Goose ng:

- **11 na tool sa naka-index mong repo**: semantic, structural (AST), graph, at text search, kasama ang symbol lookup, mga dependent, at pagkuha ng file.
- **Mga sagot na may file path at line number**: sa 285+ na wika.
- **Mga tool na nagbabasa lang**: Kinu-query ng mga tool ng Maguyva ang index. Wala sa mga ito ang nag-e-edit ng mga file mo.

> Sinasabi ng hints sa Goose *kung paano magtrabaho*.
> Binibigyan ng Maguyva ang Goose ng *mapa ng code*.

## Dalawang workflow

Mapa muna, saka hayaang tumakbo ang Goose.

### 01. Sundan ang isang bug hanggang sa pinagmulan nito

```text
goose> bakit natatapos ang ilang export nang walang kahit isang row?

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

→ Dalawang file ang binabasa ng Goose, hindi ang buong export package.
[exit 0]
```

Pinapakitid ng naka-rank na resulta ang paghahanap bago magbukas ng shell ang Goose.

### 02. Tingnan ang mga dependent bago mag-refactor

```text
goose> hatiin ang Notifier class sa email at SMS

dependency_search("Notifier", dependents)
  11 reference sa 5 na package

→ Sakop ng plano ang lahat ng labing-isa bago ang unang edit.
[exit 0]
```

Nakukuha ng Goose ang buong listahan ng dependent sa isang call sa halip na sunud-sunod na grep.

## Setup sa Goose

Tatlong hakbang. Free tier: 3 repository, Hanggang 50K na naka-index na linya ng repo, walang card.

### 01. I-index ang isang repo sa maguyva.ai

Pumili ng isang alam mo na, para masuri mo ang mga sagot.

### 02. Idagdag ang Maguyva sa extensions sa 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. Palitan ang placeholder at magsimula ng session

Palitan ang `mgv_xxxx` ng API key mo, patakbuhin ang `goose session`, at magtanong ng isang bagay na alam mo na ang sagot. Sensitibo sa indentation ang YAML: gumamit ng space, hindi tab.

Ang [extension docs](https://goose-docs.ai/docs/getting-started/using-extensions/) ng Goose ay tumatalakay sa remote extensions, timeouts, at tool filters.

## I-index ang isang repo na kilala mo na.

I-connect ang Goose sa pamamagitan ng MCP, pagkatapos ay magtanong ng isang bagay na kaya mong tsekin.
