Passer au contenu

Pour les utilisateurs de Goose

Goose tourne grâce aux extensions. Ajoutez-en une qui connaît votre dépôt.

Goose travaille au moyen d’extensions, et chaque extension est un serveur MCP. Maguyva est celle qui indexe votre base de code : Goose demande où se trouvent les choses au lieu de lister des répertoires.

Palier Free : 3 dépôts, Jusqu'à 50 000 lignes de dépôt indexées, sans carte bancaire.

.goosehints pour la façon de travailler. Maguyva pour ce que dit le code aujourd’hui.

Ce qu’il faut savoir sur Goose

Quatre faits propres à Goose.

// fichier de config

config.yaml

Les extensions se placent sous extensions dans ~/.config/goose/config.yaml. goose configure → Add Extension écrit le même genre d’entrée pour vous.

// transport

Une extension distante

Maguyva est une extension streamable_http : Goose se connecte lui-même au point de terminaison, sans processus local ni Node.js. L’URL va dans uri, pas dans url.

// clé

headers

Goose envoie la table headers à chaque requête : la clé va donc dans l’en-tête Authorization. Goose peut aussi la remplir depuis une variable d’environnement listée sous env_keys.

// filtre d’outils

available_tools

Une extension peut n’exposer qu’une partie de ses outils : listez ceux que vous voulez sous available_tools, ou laissez vide pour tous.

Les hints de Goose sont un accord de travail. Utilisez-les.

# .goosehints
- Utilise pnpm, pas npm.
- Lance les tests d’intégration avant de déclarer une modification terminée.

Goose charge par défaut AGENTS.md et .goosehints : les hints globaux depuis ~/.config/goose/.goosehints, ceux du projet depuis le dépôt, et les fichiers imbriqués quand il travaille dans des sous-dossiers. Les hints nécessitent l’extension Developer. C’est le bon endroit pour :

  • Les choix d’outillage et les commandes.
  • Les conventions que Goose doit suivre.
  • L’emplacement de la documentation.

Les hints décrivent le projet. Ils ne répondent pas à “qu’est-ce qui dépend de ça ?”

Là où les hints et le shell ne suffisent plus

Trois lacunes que Goose comble avec des commandes shell, un fichier à la fois.

// un listing n’est pas une carte

Dans un dépôt inconnu, Goose s’oriente avec des listings de répertoires et des lectures de fichiers. Chacun consomme du contexte avant même que la tâche commence.

// grep trouve des chaînes, pas des appelants

Une recherche textuelle ne distingue pas un vrai appel d’un commentaire, d’un mock ou d’une méthode homonyme.

// les hints dérivent

Un fichier de hints écrit le trimestre dernier décrit l’organisation du trimestre dernier. Goose le suit quand même.

Maguyva comme extension Goose

Une entrée extensions donne à Goose :

  • 11 outils sur votre dépôt indexé recherche sémantique, structurelle (AST), par graphe et textuelle, plus recherche de symboles, dépendants et récupération de fichiers.
  • Des réponses avec chemins de fichiers et numéros de ligne sur plus de 285 langages.
  • Des outils en lecture seule Les outils de Maguyva interrogent l’index. Aucun ne modifie vos fichiers.

Les hints disent à Goose comment travailler.

Maguyva donne à Goose une carte du code.

Deux flux de travail

La carte d’abord, puis laissez Goose tourner.

// workflow 01

Remonter un bug jusqu’à sa source

goose> pourquoi certains exports se terminent-ils avec zéro ligne ?

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

→ Goose lit deux fichiers, pas tout le paquet export.
[exit 0]

Les résultats classés réduisent la recherche avant que Goose n’ouvre un shell.

// workflow 02

Vérifier les dépendants avant un refactoring

goose> sépare la classe Notifier en e-mail et SMS

dependency_search("Notifier", dependents)
  11 références dans 5 paquets

→ Le plan couvre les onze avant la première modification.
[exit 0]

Goose obtient la liste complète des dépendants en un seul appel, au lieu d’une chaîne de grep.

Configuration dans Goose

Trois étapes. Palier Free : 3 dépôts, Jusqu'à 50 000 lignes de dépôt indexées, sans carte bancaire.

  1. // step 01

    Indexez un dépôt sur maguyva.ai

    Choisissez-en un que vous connaissez déjà, pour pouvoir évaluer les réponses.

  2. // step 02

    Ajoutez Maguyva aux extensions dans config.yaml

    ~/.config/goose/config.yaml

    extensions:
      maguyva:
        name: maguyva
        type: streamable_http
        uri: https://maguyva.tools/mcp
        enabled: true
        headers:
          Authorization: Bearer mgv_xxxx
        timeout: 300
    
  3. // step 03

    Remplacez le placeholder et lancez une session

    Remplacez mgv_xxxx par votre clé API, lancez goose session et posez une question dont vous connaissez déjà la réponse. YAML est sensible à l’indentation : des espaces, pas de tabulations.