# GEMINI.md dit à Gemini vos règles. Pas votre code.

Canonical source: https://maguyva.ai/fr/for-gemini

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).

GEMINI.md fixe le contexte de travail. MCP permet à Gemini d'aller chercher des outils. Maguyva est le serveur MCP qui donne à Gemini une carte interrogeable de votre dépôt, pour que la première modification ne soit pas une supposition sur la structure des fichiers.

> GEMINI.md, c'est le contexte. MCP, c'est le canal. Maguyva, c'est la carte.

## La pile en couches

Quatre idées. Chacune fait un travail.

### GEMINI.md

Comment Gemini doit se comporter sur ce dépôt.

### MCP

Comment Gemini va chercher des outils et du contexte externes.

### Maguyva

Le serveur MCP qui renvoie des faits ancrés dans le dépôt.

### Des espaces de travail, pas des licences par utilisateur

Les agents ne paient pas de licence par utilisateur. [Voir les tarifs](https://maguyva.ai/fr/pricing)

## GEMINI.md est un contexte de travail. Utilisez-le.

Les instructions permanentes ont leur place dans `GEMINI.md`. C'est le bon endroit pour :

- Les commandes de build, test et lint que Gemini doit lancer.
- Les garde-fous « toujours faire X / ne jamais faire Y » limités à un répertoire.
- Les conventions de nommage et préférences de refactorisation.
- Des pointeurs vers les journaux de décisions et notes d'architecture canoniques.

Restez concis. Délimitez la portée. Commitez-le.

Mais `GEMINI.md` n'a jamais été conçu pour être un index interrogeable de chaque symbole, fichier et point d'appel de votre dépôt.

## Où GEMINI.md tout seul atteint ses limites

Quatre modes d'échec, un par carte.

### // le contexte n'est pas un index

Dire à Gemini *comment travailler* ne lui dit pas *ce qui existe*. La première modification sur un paquet inconnu est une supposition sur les chemins de fichiers et les noms de fonctions. GEMINI.md ne peut pas lister chaque symbole, et vous ne le voudriez pas.

### // la doc dérive du code

Un bloc GEMINI.md décrivant votre topologie de file d'attente est juste jusqu'à ce que quelqu'un introduise un nouveau consommateur. Le code fait maintenant foi et la doc est périmée avec assurance. Gemini lit la mauvaise version.

### // renommer est un problème de graphe

« Qu'est-ce qui référence cette classe ? » ne trouve pas de réponse dans un fichier markdown. Gemini lance un grep sur le monorepo en croisant les doigts, ou vous demande de coller les points d'appel dans le chat.

### // les fenêtres de contexte ne sont pas gratuites

Une grande fenêtre n'équivaut pas à un index interrogeable. Charger GEMINI.md jusqu'à ce que Gemini « en sache assez » revient quand même à échanger du budget de raisonnement contre du volume de contexte statique.

## Comment les trois couches s'articulent

Les utilisateurs de Gemini pensent déjà selon ce schéma. La page devrait le rendre évident.

- **GEMINI.md**: contexte (comment Gemini se comporte)
- **MCP**: le canal (comment il va chercher)
- **Maguyva**: faits sur le dépôt (ce qu'il voit)

- **GEMINI.md**: comment Gemini se comporte sur ce dépôt.
- **MCP**: comment Gemini va chercher des outils et du contexte. [(spécification)](https://modelcontextprotocol.io/docs/getting-started/intro)
- **Maguyva**: ce que Gemini voit quand il pose une question au dépôt. Recherche sémantique, AST, par graphe et textuelle, renvoyée avec chemins de fichiers et numéros de ligne.

> GEMINI.md dit à Gemini *comment travailler*.
> Maguyva donne à Gemini *de quoi travailler*.

## Trois workflows

Spécifique à Gemini. Ancré dans le vrai graphe d'appels, pas dans le grep de Gemini.

### 01. Renommer une classe partagée, trouver d'abord tous les éléments qui en dépendent

```text
gemini> renommer PaymentClient → BillingClient

graph::callers(PaymentClient)            12 références dans 7 paquets
graph::importers(src/payments/client.ts)  9 importeurs
graph::extends(PaymentClient)             2 sous-classes (RetryClient, MockClient)

→ Gemini propose une migration de 21 modifications avec la liste des fichiers en ligne.
[exit 0]
```

Gemini demande à Maguyva la liste des éléments qui en dépendent *avant* de commencer à modifier. La liste de migration revient ancrée dans le vrai graphe, pas dans le souvenir de Gemini.

### 02. Trouver la vraie implémentation, pas le stub de test

```text
gemini> comment normalizePhoneNumber gère-t-il le E.164 ?

semantic::query("normalize phone E.164")
  src/util/phone.ts:88   normalizePhoneNumber()   ← impl réelle
  test/util/phone.spec.ts:14  jest.mock(...)      ← stub
[exit 0]
```

Les noms mentent. Les mocks masquent le vrai code. Maguyva classe l'implémentation réelle avant le mock de test.

### 03. Vérifier le rayon d'impact avant une refactorisation

```text
gemini> qui appelle QueueDispatcher.publish ?

graph::callers(QueueDispatcher.publish)
  3 dans src/billing/*    1 dans src/audit/*    1 dans src/notifications/*
[exit 0]
```

Les points d'appel inter-paquets remontent directement. Le diff est ancré dans les vrais importeurs, pas dans le grep de Gemini.

## Configuration dans Gemini CLI

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

### 01. Indexez un dépôt sur maguyva.ai

Choisissez-en un que vous connaissez bien, pour pouvoir vérifier les réponses.

### 02. Ajoutez Maguyva comme serveur MCP dans les paramètres de Gemini CLI

`~/.gemini/settings.json`

```json
{
  "mcpServers": {
    "maguyva": {
      "httpUrl": "https://maguyva.tools/mcp",
      "headers": {
        "Authorization": "Bearer ${MAGUYVA_API_KEY}"
      }
    }
  }
}
```

### 03. Posez une question dont vous connaissez déjà la réponse

Ne commencez pas par toute votre entreprise. Commencez par un dépôt et une question vérifiable.

## Indexez un dépôt que vous connaissez déjà.

Connectez Gemini via MCP. Posez une question dont vous pouvez vérifier la réponse.
