// vereinbarung
copilot-instructions.md
Wie Copilot sich in diesem Repo verhalten soll.
Für GitHub-Copilot-CLI-Nutzer
Benutzerdefinierte Anweisungen sagen Copilot, wie es sich verhalten soll. Sie sagen ihm nicht, was in deinem Repo steckt. Maguyva indiziert die Codebasis und liefert sie über MCP zurück, damit GitHub Copilot CLI bearbeitet, als hätte es den Code bereits gelesen.
Free-Stufe: 3 Repositories, Bis zu 50K indexierte Repo-Zeilen, keine Kreditkarte.
Nutze Anweisungen für Verhalten. Nutze Maguyva für aktuelle Fakten der Codebasis.Vier Ideen. Jede erfüllt eine Aufgabe.
// vereinbarung
Wie Copilot sich in diesem Repo verhalten soll.
// transport
Wie Copilot nach externen Tools und Kontext greift.
// codebase
Der MCP-Server, der quellenbelegte Repo-Fakten liefert.
// wer zahlt
Agenten zahlen keine Seats. Preise ansehen
# .github/copilot-instructions.md
- Bevorzuge die bestehenden Modulgrenzen.
- Führe den Test-Befehl des Repos aus, bevor du einen Merge vorschlägst.
- Erfinde keine Dateipfade. Frag nach, bevor du ein neues Paket erstellst.Dauerhafte Anweisungen gehören in .github/copilot-instructions.md. Dort gehören hin:
Diese Datei war nie ein abfragbarer Index des Repos. Sie sagt Copilot, wie es arbeiten soll. Sie sagt ihm nicht, was da ist.
Vier Fehlermodi, die Copilot nicht aus einer Markdown-Datei beheben kann.
Telling Copilot how to behave does not tell it which class owns parseConfig, or which package actually implements the public API. Die erste Änderung an einem unbekannten Baum ist eine Vermutung über die Dateistruktur.
Ein Anweisungsblock, der den Auth-Flow des letzten Quartals beschreibt, liegt sicher falsch, sobald jemand den Session-Store aufteilt. Copilot will prefer the file you committed over the code that shipped.
“Was importiert das?” is a graph question. Anweisungen können nicht jeden Aufrufer auflisten, und das solltest du auch nicht wollen.
Mehr vom Repo in Anweisungen zu stopfen tauscht Reasoning-Tokens gegen eine veraltete Momentaufnahme. Nach ein paar KB zahlst du für eine schlechtere Karte.
Copilot denkt bereits in Anweisungen und Tools.
copilot-instructions.md
Vereinbarung
wie Copilot sich verhält
MCP
der Kanal
wie es zugreift
Maguyva
Codebase-Fakten
was es sieht
Benutzerdefinierte Anweisungen sagen Copilot wie es sich verhalten soll.
Maguyva gibt Copilot eine abfragbare Karte des Codes.
Frag die Karte, bevor du den Diff akzeptierst.
// workflow 01
copilot> wie behandelt normalizePhoneNumber E.164? semantic::query("normalize phone E.164") src/util/phone.ts:88 normalizePhoneNumber() ← echte Impl. test/util/phone.spec.ts:14 jest.mock(...) ← Stub → Copilot öffnet die Implementierung, nicht den Mock. [exit 0]
Namen lügen. Mocks verdecken echten Code. Maguyva stuft die echte Implementierung höher ein als den Test-Mock.
// workflow 02
copilot> was ruft QueueDispatcher.publish auf? graph::callers(QueueDispatcher.publish) 3 in src/billing/* 1 in src/audit/* 1 in src/notifications/* → Der Diff ist auf echten Importern fundiert. [exit 0]
Paketübergreifende Aufrufstellen erscheinen inline. Der Diff ist auf echten Importern fundiert, nicht auf Copilots grep.
// workflow 03
copilot> rename PaymentClient → BillingClient graph::callers(PaymentClient) 12 Referenzen in 7 Paketen graph::importers(src/payments/client.ts) 9 Importer graph::extends(PaymentClient) 2 Unterklassen (RetryClient, MockClient) → Copilot schlägt eine Migration mit der Dateiliste inline vor. [exit 0]
Copilot fragt Maguyva nach Abhängigkeiten, bevor es mit dem Bearbeiten beginnt. Die Migrationsliste ist auf dem echten Graphen fundiert, nicht auf Copilots Erinnerung.
Drei Schritte. Free-Stufe: 3 Repositories, Bis zu 50K indexierte Repo-Zeilen, keine Kreditkarte.
// step 01
Wähle eins, das du bereits kennst, damit du die Antworten bewerten kannst. Kostenlos registrieren, GitHub verbinden, auf die Indizierung warten.
// step 02
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"
}
}
}
}// step 03
Fang nicht mit der ganzen Firma an. Stelle eine Frage, deren Antwort du schon kennst, und öffne dann die zitierte Datei.