# AGENTS.md dit à Codex comment travailler. Pas ce qui s'y trouve.

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

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

AGENTS.md fixe les règles du jeu. MCP permet à Codex d'aller chercher des outils. Maguyva est le serveur MCP qui donne à Codex une carte interrogeable de votre dépôt, pour que la première modification ne soit pas une supposition sur la structure des fichiers.

> AGENTS.md, c'est l'accord. MCP, c'est le canal. Maguyva, c'est la carte.

## La pile en couches

Quatre idées. Chacune fait un travail.

### AGENTS.md

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

### MCP

Comment Codex 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)

## AGENTS.md est un accord de travail. Utilisez-le.

Les instructions permanentes ont leur place dans [`AGENTS.md`](https://developers.openai.com/codex/guides/agents-md). C'est le bon endroit pour :

- Les commandes de build, test et lint que Codex 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 `AGENTS.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ù AGENTS.md tout seul devient statique à grande échelle

Quatre modes d'échec, un par carte.

### // un accord n'est pas un index

Dire à Codex *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. AGENTS.md ne peut pas lister chaque symbole, et vous ne le voudriez pas.

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

Un bloc AGENTS.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. Codex 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. Codex 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

Gaver AGENTS.md jusqu'à ce que Codex « en sache assez » consomme des tokens qui devraient financer le raisonnement. Au-delà de quelques Ko, vous échangez la qualité des réponses contre du volume de contexte statique.

## Comment les trois couches s'articulent

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

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

- **AGENTS.md**: comment Codex se comporte sur ce dépôt.
- **MCP**: comment Codex va chercher des outils et du contexte. [(spécification)](https://modelcontextprotocol.io/docs/getting-started/intro)
- **Maguyva**: ce que Codex 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.

> AGENTS.md dit à Codex *comment travailler*.
> Maguyva donne à Codex *de quoi travailler*.

## Trois workflows

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

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

```text
codex> 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)

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

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

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

```text
codex> 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
codex> 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 Codex.

## Configuration dans Codex 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 votre config Codex

`~/.codex/config.toml`

```text
export MAGUYVA_API_KEY=mgv_xxxx
codex mcp add maguyva --url https://maguyva.tools/mcp --bearer-token-env-var MAGUYVA_API_KEY
```

```toml
[mcp_servers.maguyva]
url = "https://maguyva.tools/mcp"
bearer_token_env_var = "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 Codex via MCP. Posez une question dont vous pouvez vérifier la réponse.
