# Goose funziona con le estensioni. Aggiungine una che conosce il tuo repo.

Canonical source: https://maguyva.ai/it/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 lavora tramite estensioni, e ogni estensione è un server MCP. Maguyva è quella che indicizza il tuo codebase, così Goose chiede dove si trovano le cose invece di elencare directory.

> .goosehints per come lavorare. Maguyva per ciò che dice il codice adesso.

## Cosa sapere su Goose

Quattro fatti specifici di Goose.

### config.yaml

Le estensioni stanno sotto `extensions` in `~/.config/goose/config.yaml`. `goose configure` → Add Extension scrive per te lo stesso tipo di voce.

### Un’estensione remota

Maguyva è un’estensione `streamable_http`, quindi Goose si collega da solo all’endpoint: nessun processo locale, niente Node.js. L’URL va in `uri`, non in `url`.

### headers

Goose invia la mappa `headers` a ogni richiesta, quindi la chiave va nell’header `Authorization`. Goose può anche riempirla da una variabile d’ambiente elencata in `env_keys`.

### available_tools

Un’estensione può esporre solo una parte dei suoi strumenti: elenca quelli che vuoi sotto `available_tools`, oppure lascialo vuoto per averli tutti.

## Gli hint di Goose sono un accordo di lavoro. Usali.

```text
# .goosehints
- Usa pnpm, non npm.
- Esegui i test di integrazione prima di dichiarare conclusa una modifica.
```

Per impostazione predefinita Goose carica `AGENTS.md` e `.goosehints`: gli hint globali da `~/.config/goose/.goosehints`, quelli di progetto dal repo e i file annidati mentre lavora nelle sottocartelle. Gli hint richiedono l’estensione Developer. Sono il posto giusto per:

- Scelte di strumenti e comandi.
- Convenzioni che Goose deve seguire.
- Dove si trova la documentazione.

Gli hint descrivono il progetto. Non rispondono a “cosa dipende da questo?”

## Dove gli hint e la shell non bastano

Tre lacune che Goose colma con comandi di shell, un file alla volta.

### // un elenco non è una mappa

In un repo sconosciuto, Goose si orienta con elenchi di directory e letture di file. Ognuno consuma contesto prima ancora che inizi il compito.

### // grep trova stringhe, non chiamanti

Una ricerca testuale non distingue una chiamata reale da un commento, un mock o un metodo con lo stesso nome.

### // gli hint vanno alla deriva

Un file di hint scritto lo scorso trimestre descrive la struttura dello scorso trimestre. Goose lo segue comunque.

## Maguyva come estensione di Goose

Una voce in extensions dà a Goose:

- **11 strumenti sul tuo repo indicizzato**: ricerca semantica, strutturale (AST), a grafo e testuale, più ricerca dei simboli, dipendenti e recupero file.
- **Risposte con percorsi file e numeri di riga**: su oltre 285 linguaggi.
- **Strumenti che leggono e basta**: Gli strumenti di Maguyva interrogano l’indice. Nessuno modifica i tuoi file.

> Gli hint dicono a Goose *come lavorare*.
> Maguyva dà a Goose *una mappa del codice*.

## Due flussi di lavoro

Prima la mappa, poi lascia lavorare Goose.

### 01. Risalire a un bug fino all’origine

```text
goose> perché alcune esportazioni finiscono con zero righe?

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

→ Goose legge due file, non l’intero pacchetto export.
[exit 0]
```

I risultati classificati restringono la ricerca prima che Goose apra una shell.

### 02. Controllare i dipendenti prima di un refactoring

```text
goose> dividi la classe Notifier in email e SMS

dependency_search("Notifier", dependents)
  11 riferimenti in 5 pacchetti

→ Il piano copre tutti e undici prima della prima modifica.
[exit 0]
```

Goose ottiene l’elenco completo dei dipendenti con una sola chiamata invece che con una catena di grep.

## Configurazione in Goose

Tre passaggi. Piano Free: 3 repository, Fino a 50K righe di repository indicizzate, senza carta di credito.

### 01. Indicizza un repo su maguyva.ai

Scegline uno che già conosci, così puoi valutare le risposte.

### 02. Aggiungi Maguyva a extensions in 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. Sostituisci il segnaposto e avvia una sessione

Sostituisci `mgv_xxxx` con la tua chiave API, esegui `goose session` e fai una domanda di cui conosci già la risposta. YAML è sensibile all’indentazione: usa spazi, non tabulazioni.

La [documentazione delle estensioni](https://goose-docs.ai/docs/getting-started/using-extensions/) di Goose copre estensioni remote, timeout e filtri degli strumenti.

## Indicizza un repo che già conosci.

Collega Goose via MCP, poi fai una domanda che puoi verificare.
