# Goose funciona con extensiones. Agrega una que conozca tu repo.

Canonical source: https://maguyva.ai/es/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 hace su trabajo mediante extensiones, y cada extensión es un servidor MCP. Maguyva es la que indexa tu base de código, así Goose pregunta dónde están las cosas en lugar de listar directorios.

> Usa .goosehints para cómo trabajar. Usa Maguyva para lo que dice el código hoy.

## Lo que necesitas saber de Goose

Cuatro datos propios de Goose.

### config.yaml

Las extensiones van bajo `extensions` en `~/.config/goose/config.yaml`. `goose configure` → Add Extension escribe por ti el mismo tipo de entrada.

### Una extensión remota

Maguyva es una extensión `streamable_http`, así que Goose se conecta al endpoint por sí mismo: sin procesos locales ni Node.js. La URL va en `uri`, no en `url`.

### headers

Goose envía el mapa `headers` en cada petición, así que la clave va en el encabezado `Authorization`. Goose también puede rellenarla desde una variable de entorno incluida en `env_keys`.

### available_tools

Una extensión puede exponer solo parte de sus herramientas: lista las que quieras bajo `available_tools`, o déjalo vacío para usarlas todas.

## Las hints de Goose son un acuerdo de trabajo. Úsalas.

```text
# .goosehints
- Usa pnpm, no npm.
- Ejecuta las pruebas de integración antes de dar un cambio por terminado.
```

Goose carga por defecto `AGENTS.md` y `.goosehints`: hints globales desde `~/.config/goose/.goosehints`, hints del proyecto desde el repo y archivos anidados mientras trabaja en subcarpetas. Las hints requieren la extensión Developer. Son el lugar indicado para:

- Elecciones de herramientas y comandos.
- Convenciones que Goose debe seguir.
- Dónde vive la documentación.

Las hints describen el proyecto. No responden “¿qué depende de esto?”

## Donde las hints y la shell se quedan cortas

Tres huecos que Goose llena con comandos de shell, un archivo a la vez.

### // un listado no es un mapa

En un repo desconocido, Goose se orienta con listados de directorios y lecturas de archivos. Cada uno gasta contexto antes de que empiece la tarea.

### // grep encuentra cadenas, no llamadores

Una búsqueda de texto no distingue una llamada real de un comentario, un mock o un método con el mismo nombre.

### // las hints se desfasan

Un archivo de hints escrito el trimestre pasado describe la estructura del trimestre pasado. Goose lo sigue igual.

## Maguyva como extensión de Goose

Una entrada en extensions le da a Goose:

- **11 herramientas sobre tu repo indexado**: búsqueda semántica, estructural (AST), de grafo y de texto, además de búsqueda de símbolos, dependientes y recuperación de archivos.
- **Respuestas con rutas de archivo y números de línea**: en 285+ lenguajes.
- **Herramientas que solo leen**: Las herramientas de Maguyva consultan el índice. Ninguna edita tus archivos.

> Las hints le dicen a Goose *cómo trabajar*.
> Maguyva le da a Goose *un mapa del código*.

## Dos flujos de trabajo

Primero el mapa, después deja que Goose trabaje.

### 01. Rastrear un bug hasta su origen

```text
goose> ¿por qué algunas exportaciones terminan con cero filas?

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

→ Goose lee dos archivos, no todo el paquete export.
[exit 0]
```

Los resultados priorizados acotan la búsqueda antes de que Goose abra una shell.

### 02. Revisar dependientes antes de un refactor

```text
goose> divide la clase Notifier en correo y SMS

dependency_search("Notifier", dependents)
  11 referencias en 5 paquetes

→ El plan cubre las once antes de la primera edición.
[exit 0]
```

Goose obtiene la lista completa de dependientes en una sola llamada en lugar de una cadena de grep.

## Configuración en Goose

Tres pasos. Nivel Free: 3 repositorios, Hasta 50 mil líneas de repo indexadas, sin tarjeta.

### 01. Indexa un repo en maguyva.ai

Elige uno que ya conozcas, así puedes evaluar las respuestas.

### 02. Agrega Maguyva a extensions en 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. Reemplaza el marcador e inicia una sesión

Cambia `mgv_xxxx` por tu clave de API, ejecuta `goose session` y haz una pregunta cuya respuesta ya conozcas. YAML es sensible a la indentación: usa espacios, no tabulaciones.

La [documentación de extensiones](https://goose-docs.ai/docs/getting-started/using-extensions/) de Goose cubre extensiones remotas, tiempos de espera y filtros de herramientas.

## Indexa un repo que ya conozcas.

Conecta Goose vía MCP y haz una pregunta que puedas comprobar.
