Vai al contenuto

Per gli utenti di GitHub Copilot CLI

Copilot inizia ogni sessione alla cieca.

Le istruzioni personalizzate dicono a Copilot come comportarsi. Non gli dicono cosa c’è nel tuo repository. Maguyva indicizza la codebase e la restituisce tramite MCP, così GitHub Copilot CLI modifica come se avesse già letto il codice.

Piano Free: 3 repository, Fino a 50K righe di repository indicizzate, senza carta di credito.

Usa le istruzioni per il comportamento. Usa Maguyva per i fatti attuali della codebase.

Lo stack a livelli

Quattro idee. Ognuna ha un compito.

// accordo

copilot-instructions.md

Come Copilot dovrebbe comportarsi in questo repo.

// trasporto

MCP

Come Copilot accede a strumenti e contesto esterni.

// codebase

Maguyva

Il server MCP che restituisce fatti fondati sul repo.

// chi paga

Workspace, non utenti

Gli agenti non comportano costi per utente. Vedi i prezzi

Le istruzioni personalizzate sono un accordo di lavoro. Usale.

# .github/copilot-instructions.md
- Preferisci i confini di modulo esistenti.
- Esegui il comando di test del repo prima di proporre un merge.
- Non inventare percorsi di file. Chiedi prima di creare un nuovo pacchetto.

Le istruzioni persistenti appartengono a .github/copilot-instructions.md. È il posto giusto per:

  • Comandi di build, test e lint che Copilot deve eseguire.
  • Regole “Fai sempre X / non fare mai Y” limitate a questo repo.
  • Convenzioni di denominazione e preferenze di revisione.
  • Riferimenti al registro delle decisioni — non un dump di ogni simbolo.

Quel file non è mai stato un indice interrogabile del repo. Dice a Copilot come lavorare. Non gli dice cosa c’è.

Dove le istruzioni personalizzate smettono di reggere su larga scala

Quattro modalità di errore che Copilot non può risolvere da un file markdown.

// le istruzioni non sono un indice

Telling Copilot how to behave does not tell it which class owns parseConfig, or which package actually implements the public API. La prima modifica su un albero sconosciuto è una supposizione sulla struttura dei file.

// i documenti diventano obsoleti, il codice no

Un blocco di istruzioni che descrive il flusso di autenticazione dello scorso trimestre risulta chiaramente sbagliato il giorno in cui qualcuno divide il session store. Copilot will prefer the file you committed over the code that shipped.

// le dipendenze non sono in markdown

“Cosa importa questo?” is a graph question. Le istruzioni non possono elencare ogni chiamante, e non lo vorresti comunque.

// le finestre di contesto hanno un budget

Inserire più repo nelle istruzioni scambia token di ragionamento per un’istantanea obsoleta. Oltre qualche KB stai pagando per una mappa peggiore.

Maguyva come livello aggiuntivo

Copilot pensa già in termini di istruzioni e strumenti.

copilot-instructions.md

accordo

come si comporta Copilot

MCP

il canale

come vi accede

Maguyva

fatti sul codice

cosa vede

  • Una mappa interrogabile del repo servita tramite MCP come server remoto streamable-HTTP.
  • 11 strumenti rivolti al cliente in ricerca semantica, strutturale (AST), a grafo e testuale, oltre a simboli, dipendenti e recupero file.
  • Risultati classificati con percorsi file e numeri di riga su oltre 284 linguaggi e tecnologie testuali.
  • Una sola configurazione Lo stesso workspace risponde in Copilot, Claude Code, Cursor, Codex e qualsiasi altro client compatibile con MCP.

Le istruzioni personalizzate dicono a Copilot come comportarsi.

Maguyva dà a Copilot una mappa interrogabile del codice.

Tre flussi di lavoro

Interroga la mappa prima di accettare il diff.

// workflow 01

Trova l’implementazione reale, non lo stub di test

copilot> come gestisce normalizePhoneNumber il formato E.164?

semantic::query("normalize phone E.164")
  src/util/phone.ts:88   normalizePhoneNumber()   ← impl. reale
  test/util/phone.spec.ts:14  jest.mock(...)      ← stub

→ Copilot apre l’implementazione, non il mock.
[exit 0]

I nomi mentono. I mock nascondono il codice reale. Maguyva classifica l’implementazione reale sopra il mock di test.

// workflow 02

Controlla il raggio d’impatto prima di rifattorizzare

copilot> cosa chiama QueueDispatcher.publish?

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

→ Il diff è fondato su importatori reali.
[exit 0]

I punti di chiamata tra pacchetti emergono in linea. Il diff è fondato su importatori reali, non sul grep di Copilot.

// workflow 03

Rinomina una classe condivisa, trova prima ogni dipendente

copilot> rename PaymentClient → BillingClient

graph::callers(PaymentClient)            12 riferimenti in 7 pacchetti
graph::importers(src/payments/client.ts)  9 importatori
graph::extends(PaymentClient)             2 sottoclassi (RetryClient, MockClient)

→ Copilot propone una migrazione con l’elenco dei file in linea.
[exit 0]

Copilot chiede a Maguyva i dipendenti prima di iniziare a modificare. L’elenco di migrazione torna fondato sul grafo reale, non sul ricordo di Copilot.

Configurazione in GitHub Copilot CLI

Tre passaggi. Piano Free: 3 repository, Fino a 50K righe di repository indicizzate, senza carta di credito.

  1. // step 01

    Indicizza un repo su maguyva.ai

    Scegline uno che già conosci, così puoi valutare le risposte. Iscriviti gratis, collega GitHub, attendi l’indicizzazione.

  2. // step 02

    Aggiungi Maguyva come server MCP remoto in 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

    Fai una domanda di cui già conosci la risposta

    Non iniziare con l’intera azienda. Fai una domanda di cui già conosci la risposta, poi apri il file citato.