# Goose kører på udvidelser. Tilføj én, der kender dit repo.

Canonical source: https://maguyva.ai/da/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 udfører sit arbejde gennem udvidelser, og hver udvidelse er en MCP-server. Maguyva er den, der indekserer din kodebase, så Goose spørger, hvor tingene ligger, i stedet for at liste mapper.

> .goosehints til, hvordan du arbejder. Maguyva til, hvad koden siger nu.

## Det skal du vide om Goose

Fire fakta, der gælder netop Goose.

### config.yaml

Udvidelser ligger under `extensions` i `~/.config/goose/config.yaml`. `goose configure` → Add Extension skriver den samme slags post for dig.

### En ekstern udvidelse

Maguyva er en `streamable_http`-udvidelse, så Goose forbinder selv til endpointet: ingen lokal proces, ingen Node.js. URL’en står i `uri`, ikke i `url`.

### headers

Goose sender `headers`-mappet med hver forespørgsel, så nøglen går i `Authorization`-headeren. Goose kan også udfylde den fra en miljøvariabel, der står under `env_keys`.

### available_tools

En udvidelse kan nøjes med at eksponere en del af sine værktøjer: list dem, du vil have, under `available_tools`, eller lad feltet stå tomt for dem alle.

## Goose-hints er en arbejdsaftale. Brug dem.

```text
# .goosehints
- Brug pnpm, ikke npm.
- Kør integrationstestene, før du kalder en ændring færdig.
```

Goose indlæser som standard `AGENTS.md` og `.goosehints`: globale hints fra `~/.config/goose/.goosehints`, projekthints fra repoet og indlejrede filer, når det arbejder i undermapper. Hints kræver udvidelsen Developer. De er det rette sted til:

- Værktøjsvalg og kommandoer.
- Konventioner, Goose skal følge.
- Hvor dokumentationen ligger.

Hints beskriver projektet. De svarer ikke på “hvad afhænger af det her?”

## Hvor hints og shellen slipper op

Tre huller, Goose fylder med shell-kommandoer, én fil ad gangen.

### // en liste er ikke et kort

I et ukendt repo orienterer Goose sig med mappelister og fillæsninger. Hver af dem bruger kontekst, før opgaven overhovedet starter.

### // grep finder strenge, ikke kaldere

En tekstsøgning kan ikke skelne et rigtigt kald fra en kommentar, en mock eller en metode med samme navn.

### // hints sakker bagud

En hints-fil skrevet sidste kvartal beskriver sidste kvartals opbygning. Goose følger den alligevel.

## Maguyva som Goose-udvidelse

Én post under extensions giver Goose:

- **11 værktøjer til dit indekserede repo**: semantisk, strukturel (AST-), graf- og tekstsøgning, plus symbolopslag, afhængige og filhentning.
- **Svar med filstier og linjenumre**: på tværs af over 285 sprog.
- **Værktøjer, der kun læser**: Maguyvas værktøjer forespørger indekset. Ingen af dem retter i dine filer.

> Hints fortæller Goose, *hvordan det skal arbejde*.
> Maguyva giver Goose *et kort over koden*.

## To arbejdsgange

Kortet først, lad så Goose køre.

### 01. Spor en fejl tilbage til kilden

```text
goose> hvorfor ender nogle eksporter med nul rækker?

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

→ Goose læser to filer, ikke hele export-pakken.
[exit 0]
```

Rangerede resultater indsnævrer søgningen, før Goose åbner en shell.

### 02. Tjek afhængige før en refaktorering

```text
goose> del klassen Notifier op i e-mail og sms

dependency_search("Notifier", dependents)
  11 referencer i 5 pakker

→ Planen dækker alle elleve før første rettelse.
[exit 0]
```

Goose får den fulde liste over afhængige i ét kald i stedet for en kæde af greps.

## Opsætning i Goose

Tre trin. Free-niveau: 3 repos, Op til 50K indekserede repo-linjer, intet kreditkort.

### 01. Indekser et repo på maguyva.ai

Vælg et, du allerede kender, så du kan vurdere svarene.

### 02. Tilføj Maguyva til extensions i 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. Udskift pladsholderen, og start en session

Udskift `mgv_xxxx` med din API-nøgle, kør `goose session`, og stil ét spørgsmål, du allerede kender svaret på. YAML er følsom over for indrykning: brug mellemrum, ikke tabulatorer.

Gooses [dokumentation om udvidelser](https://goose-docs.ai/docs/getting-started/using-extensions/) dækker eksterne udvidelser, timeouts og værktøjsfiltre.

## Indekser ét repo, du allerede kender.

Forbind Goose over MCP, og stil ét spørgsmål, du kan tjekke.
