Passer au contenu

Pour les utilisateurs de GitHub Copilot CLI

Copilot commence chaque session à l’aveugle.

Les instructions personnalisées indiquent à Copilot comment se comporter. Elles ne lui disent pas ce qui se trouve dans votre dépôt. Maguyva indexe la base de code et la sert via MCP, pour que GitHub Copilot CLI modifie comme s’il avait déjà lu le code.

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

Utilisez les instructions pour le comportement. Utilisez Maguyva pour les faits actuels de la base de code.

La pile en couches

Quatre idées. Chacune fait un travail.

// accord

copilot-instructions.md

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

// transport

MCP

Comment Copilot va chercher des outils et du contexte externes.

// dépôt

Maguyva

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

// qui paie

Des espaces de travail, pas des licences par utilisateur

Les agents ne paient pas de licence par utilisateur. Voir les tarifs

Les instructions personnalisées sont un accord de travail. Utilisez-les.

# .github/copilot-instructions.md
- Préférez les limites de modules existantes.
- Exécutez la commande de test du dépôt avant de proposer une fusion.
- N’inventez pas de chemins de fichiers. Demandez avant de créer un nouveau paquet.

Les instructions persistantes ont leur place dans .github/copilot-instructions.md. C’est l’endroit adapté pour :

  • Les commandes de build, de test et de lint que Copilot doit exécuter.
  • Des garde-fous “Toujours faire X / ne jamais faire Y” propres à ce dépôt.
  • Les conventions de nommage et les préférences de revue.
  • Des pointeurs vers le journal des décisions — pas un déversement de chaque symbole.

Ce fichier n’a jamais été un index interrogeable du dépôt. Il dit à Copilot comment travailler. Il ne lui dit pas ce qui s’y trouve.

Où les instructions personnalisées cessent de tenir à grande échelle

Quatre modes d’échec que Copilot ne peut pas corriger depuis un fichier markdown.

// les instructions ne sont pas un index

Telling Copilot how to behave does not tell it which class owns parseConfig, or which package actually implements the public API. La première modification sur une arborescence inconnue est une supposition sur la structure des fichiers.

// la doc devient obsolète, pas le code

Un bloc d’instructions décrivant le flux d’authentification du trimestre dernier devient franchement faux le jour où quelqu’un scinde le magasin de sessions. Copilot will prefer the file you committed over the code that shipped.

// les dépendances ne sont pas dans le markdown

“Qu’est-ce qui importe ceci ?” is a graph question. Les instructions ne peuvent pas lister chaque appelant, et vous ne le voudriez pas non plus.

// les fenêtres de contexte ont un budget

Mettre plus de dépôt dans les instructions échange des tokens de raisonnement contre un instantané obsolète. Au-delà de quelques Ko, vous payez pour une carte moins bonne.

Maguyva comme couche supplémentaire

Copilot pense déjà en instructions et en outils.

copilot-instructions.md

accord

comment Copilot se comporte

MCP

le canal

comment il accède

Maguyva

faits du code

ce qu’il voit

  • Une carte interrogeable du dépôt servie via MCP en tant que serveur distant en streamable-HTTP.
  • 11 outils orientés client en recherche sémantique, structurelle (AST), de graphe et textuelle, plus symboles, dépendants et récupération de fichiers.
  • Des résultats classés avec chemins de fichiers et numéros de ligne sur plus de 284 langages et technologies textuelles.
  • Une seule configuration Le même espace de travail répond dans Copilot, Claude Code, Cursor, Codex et tout autre client compatible MCP.

Les instructions personnalisées indiquent à Copilot comment se comporter.

Maguyva donne à Copilot une carte interrogeable du code.

Trois flux de travail

Interrogez la carte avant d’accepter le diff.

// workflow 01

Trouver l’implémentation réelle, pas le stub de test

copilot> comment normalizePhoneNumber gère-t-il le format 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

→ Copilot ouvre l’implémentation, pas le mock.
[exit 0]

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

// workflow 02

Vérifier le rayon d'impact avant de refactoriser

copilot> qu’est-ce qui appelle QueueDispatcher.publish ?

graph::callers(QueueDispatcher.publish)
  3 dans src/billing/*    1 dans src/audit/*    1 dans src/notifications/*

→ Le diff est fondé sur de vrais importateurs.
[exit 0]

Les points d’appel inter-paquets apparaissent directement. Le diff est fondé sur de vrais importateurs, pas sur le grep de Copilot.

// workflow 03

Renommer une classe partagée, trouver d’abord chaque dépendant

copilot> rename PaymentClient → BillingClient

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

→ Copilot propose une migration avec la liste des fichiers en ligne.
[exit 0]

Copilot demande à Maguyva les dépendants avant de commencer à éditer. La liste de migration revient fondée sur le graphe réel, pas sur le souvenir de Copilot.

Configuration dans GitHub Copilot CLI

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. Inscrivez-vous gratuitement, connectez GitHub, attendez l’indexation.

  2. // step 02

    Ajoutez Maguyva comme serveur MCP distant dans Copilot

    copilot mcp add --transport http --header "Authorization: Bearer mgv_xxxx" maguyva https://maguyva.tools/mcp

    ~/.copilot/mcp-config.json

    {
      "mcpServers": {
        "maguyva": {
          "type": "http",
          "url": "https://maguyva.tools/mcp",
          "headers": {
            "Authorization": "Bearer mgv_xxxx"
          }
        }
      }
    }
  3. // step 03

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

    Ne commencez pas avec toute l’entreprise. Posez une question dont vous connaissez déjà la réponse, puis ouvrez le fichier cité.