# Goose працює на розширеннях. Додайте те, що знає ваш репозиторій.

Canonical source: https://maguyva.ai/uk/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 виконує роботу через розширення, і кожне розширення — це MCP-сервер. Maguyva — саме те, що індексує вашу кодову базу, тож Goose питає, де що лежить, а не перебирає каталоги.

> .goosehints — для того, як працювати. Maguyva — для того, що код каже зараз.

## Що треба знати про Goose

Чотири факти саме про Goose.

### config.yaml

Розширення задаються в `extensions` у `~/.config/goose/config.yaml`. Команда `goose configure` → Add Extension пише такий самий запис за вас.

### Віддалене розширення

Maguyva — розширення `streamable_http`, тож Goose сам під’єднується до ендпоінта: жодних локальних процесів, жодного Node.js. URL вказується в `uri`, а не в `url`.

### headers

Goose надсилає мапу `headers` з кожним запитом, тому ключ вказується в заголовку `Authorization`. Goose також може підставити його зі змінної оточення, переліченої в `env_keys`.

### available_tools

Розширення може відкривати лише частину своїх інструментів: перелічіть потрібні в `available_tools` або залиште поле порожнім, щоб отримати всі.

## Підказки Goose — це робоча домовленість. Користуйтеся ними.

```text
# .goosehints
- Використовуй pnpm, а не npm.
- Запускай інтеграційні тести, перш ніж вважати зміну готовою.
```

За замовчуванням Goose завантажує `AGENTS.md` і `.goosehints`: глобальні підказки з `~/.config/goose/.goosehints`, підказки проєкту з репозиторію і вкладені файли, коли працює в підтеках. Для підказок потрібне розширення Developer. Вони підходять для:

- Вибору інструментів і команд.
- Домовленостей, яких має дотримуватися Goose.
- Того, де лежить документація.

Підказки описують проєкт. На питання “що від цього залежить?” вони не відповідають.

## Де підказок і оболонки вже замало

Три прогалини, які Goose закриває командами оболонки, файл за файлом.

### // список каталогів — це не карта

У незнайомому репозиторії Goose орієнтується за списками каталогів і читанням файлів. Кожна така дія витрачає контекст ще до початку задачі.

### // grep знаходить рядки, а не викликачів

Текстовий пошук не відрізняє справжній виклик від коментаря, мока чи методу з тим самим іменем.

### // підказки відстають

Файл підказок, написаний минулого кварталу, описує структуру минулого кварталу. Goose однаково йому слідує.

## Maguyva як розширення Goose

Один запис у extensions дає Goose:

- **11 інструментів для вашого проіндексованого репозиторію**: семантичний, структурний (AST), графовий і текстовий пошук, а також пошук символів, залежні та отримання файлів.
- **Відповіді зі шляхами до файлів і номерами рядків**: у понад 285 мовах.
- **Інструменти лише для читання**: Інструменти Maguyva звертаються до індексу. Жоден із них не змінює ваші файли.

> Підказки кажуть Goose, *як працювати*.
> Maguyva дає Goose *карту коду*.

## Два робочі процеси

Спершу карта, потім хай Goose працює.

### 01. Простежити баг до джерела

```text
goose> чому деякі вивантаження завершуються з нулем рядків?

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

→ Goose читає два файли, а не весь пакет export.
[exit 0]
```

Ранжовані результати звужують пошук ще до того, як Goose відкриє оболонку.

### 02. Перевірити залежних перед рефакторингом

```text
goose> розділи клас Notifier на email і SMS

dependency_search("Notifier", dependents)
  11 посилань у 5 пакетах

→ План охоплює всі одинадцять до першої правки.
[exit 0]
```

Goose отримує повний список залежних одним викликом, а не ланцюжком grep.

## Налаштування в Goose

Три кроки. Тариф Free: 3 репозиторії, До 50 тис. проіндексованих рядків репозиторію, без кредитної картки.

### 01. Проіндексуйте репозиторій на maguyva.ai

Оберіть той, який ви вже знаєте, щоб оцінити відповіді.

### 02. Додайте Maguyva до extensions у 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. Замініть заглушку і почніть сесію

Замініть `mgv_xxxx` своїм API-ключем, запустіть `goose session` і поставте запитання, відповідь на яке вже знаєте. YAML чутливий до відступів: пробіли, а не таби.

У [документації Goose про розширення](https://goose-docs.ai/docs/getting-started/using-extensions/) описано віддалені розширення, тайм-аути й фільтри інструментів.

## Проіндексуйте один репозиторій, який ви вже добре знаєте.

Підключіть Goose через MCP і поставте запитання, яке можна перевірити.
