GitHub Copilot File‑Referenzen
Wiederverwendbare Kontexte, PowerShell‑Automatisierung und praktische Workflows
Man muss nicht immer einen MCP‑Server oder ein komplettes RAG‑System bauen, um GitHub Copilot sinnvoll und mit Qualität einzusetzen. Oft reichen einfache, gut durchdachte Hilfsmittel, um Copilot mit genau dem Kontext zu versorgen, den man für Architektur, Refactoring oder Feature‑Entwicklung braucht.
Ziel:
- File‑Referenzen gezielt nutzen, statt Code in den Chat zu kopieren
- Kontextverlust vermeiden, indem man Referenzen wiederverwendbar macht
- Automatisierung mit PowerShell, um Referenzlisten und Projektstrukturen zu erzeugen
- Strukturierte Prompts in drei Bereichen: Allgemein, Projekt, Persönlich
Am Ende hast du ein kleines, aber sehr wirkungsvolles Setup, mit dem du Copilot wie ein Teammitglied mit sauberer Dokumentation und klaren Spielregeln einsetzen kannst.
Link zu GitHub Copilot gesamt Dokumentation GitHub Copilot Docs
Was sind File‑Referenzen?
File‑Referenzen ist eine Möglichkeit Copilot explizit mitzuteilen, welche Dateien für eine bestimmte Frage oder Aufgabe relevant sind. Beispiel:
#file:'src/Services/UserService.cs'
#file:'src/Controllers/UserController.cs'
Bitte prüfe, ob die Validierungslogik konsistent ist
Copilot kann diese Dateien dann gezielt einlesen und seine Antwort darauf aufbauen. Das ist präziser, reproduzierbarer und deutlich besser dokumentierbar als freies „Rate mal, was ich meine“.
Wie Copilot Dateien einliest
Je nach Umgebung (VS Code, Visual Studio, GitHub.com) kann Copilot:
- offene Dateien automatisch berücksichtigen
- Projektkontext (Repository) teilweise einbeziehen
- explizit referenzierte Dateien über ein Syntax priorisieren
File‑Referenzen sind dabei dein „hartes Signal“: Diese Dateien sind wichtig, bitte berücksichtigen.
Grenzen
- Kontextfenster ist begrenzt → zu viele Dateien verwässern die Antwort
- Binärdateien, grosse Logs oder generierte Artefakte sind ungeeignet
- Pfade müssen stimmen (relativ/absolut, je nach Setup)
Best Practices für File-Referenzen
- Nur relevante Dateien referenzieren
- Gruppieren (z. B. Controller, Services, Views)
- Referenzlisten versionieren (z.B. V2)
- Wiederverwendbare Referenzdateien für typische Aufgaben anlegen
- Workspace Setup
- Sichtbarkeit von Ordnerstruktur oder Namespaces
- Naming Conventions
- Team‑Onboarding: Dokumentation, Copilot‑Workflows, PowerShell Scripts
File-Referenz-Syntax
File Referenz können in Chat, Prompt Files und in Custom Instruction mit folgenden Syntax verwendet werden:
#file:'relativer/oder/absoluter/pfad/zur/datei.cs'
Verwendung von File-Referenzen
Sinnvolle Verwendung von Referenzen für wiederholte Aufgaben z.B.:
- „Architekturreview für Modul X“
- „Erkläre mir die wichtigsten Use Cases in diesem Bereich“
- „Refactoring dieses Services“
Statt jedes Mal die File‑Referenzen und Programm Richtlinien zu tippen, legst du Referenzdateien an, z. B.:
docs/CleanArchitectureCodingStandardsBestPractices.mddocs/SourceFiles_OrderModule.txt
Source Files Datei Listen docs/SourceFiles_OrderModule.txt enthält z.B.:
#file:'src/Domain/Order.cs'
#file:'src/Application/Services/OrderService.cs'
...
... in Chat
Prompt Beispiel mit Einzel Source Datei Referenzen in einem Chat:
#file:'src/Domain/Order.cs'
#file:'src/Application/Services/OrderService.cs'
#file:'src/Infrastructure/Repositories/OrderRepository.cs'
Erkläre den Lebenszyklus einer Bestellung.
Prompt Beispiel mit Source Files List Referenzen und Programm Guide Referenz:
Erweiterung gemäss #file:'docs/CleanArchitectureCodingStandardsBestPractices.md'
Funktion: Liste offener Bestellungen mit Angabe vom Datum bis Datum, Ausgabe im JSON Format für web API
in #file:'docs/SourceFiles_OrderModule.txt'
Link für weitere Chat Prompts GitHub Copilot Chat Cookbook
... in Prompt Files
Prompt Files sind Dateien (z. B. *.prompt.md), die du als wiederverwendbare Anweisungen für Copilot definierst.
Darin kannst du ebenfalls File‑Referenzen verwenden:
Du kannst Prompt Files so gestalten, dass sie Referenzdateien einbinden, statt jede Datei einzeln zu listen. Beispiel:
Architektur Review
#file:'docs/CleanArchitectureCodingStandardsBestPractices.md'
von Order Modul Verwende Dateien die in
#file:'docs/SourceFiles_OrderModule.txt'
aufgeführt sind.
Prüfe, ob die Services den Architektur entspricht.
Link weitere Informationen über Prompt File GitHub Copilot Prompt File
... in Custom Instructions
Das Ziel benutzerdefinierter Instruktionen ist es, dass immer gleich gearbeitet wird.
Es sind die Code of Conduct, die Definition der Zusammenarbeit:
- Einheitlicher Stil
- Wiederverwendbare Regeln
- Coding‑Standards (z. B. Clean Code, Naming‑Konventionen)
- Review‑Regeln (z. B. „erst erklären, dann ändern“)
- Architektur‑Guidelines (z. B. „Domain‑Logik nicht in Controllern“)
Beispiel einer Custom Instructions in .github/copilot-instructions.md:
Implementierung und Refactoring nach
#file:'docs/CleanArchitectureCodingStandardsBestPractices.md'
Änderungen kurz und pregnant Begründen.
Bestehende Comments stehen lassen, wenn notwendig Text anpassen.
Comments nur erweitern wenn sinnvoll, wenn es einen Kontext braucht.
Wenn es sinnvoll ist Tabellendarstellung im md Format.
Wenn es sinnvoll ist Grafische Darstellung im mermaid Format.
Hinweis: Für die Verwendung der Standard Custom Instructions (.github/copilot-instructions.md und .github/instructions/*.instructions.md) muss diese in Options aktiviert sein.
Link weitere Informationen über Instruktion File GitHub Copilot Instructions File
... in Project Document
Ziele von projektbezogenen Datei-Referenzen sind, Projektkontext und Projektregeln zu definieren. Typische Inhalte:
- Anforderungen (Use Cases)
- Architektur (Clean Architecture, Coding Standards, Best Practices)
- Projekt‑Struktur (Folder-, Namespace-Struktur)
Beispiel einer Projekt Datei in Form einer README.md Datei
Projekt: Transfer Core
Daten Handling von IMAP und web DAV Daten.
Daten Handling unterschiedlichen web DAV Hersteller: IceWarp, OpenXchange.
Daten Handling unterschiedlicher web DAV Formate: .ics, iCalendar; .vcf, vCard.
Funktionen: Kopieren und Parsen der Daten.
Detail Dokumentation
#file:'docs/ProviderV2.md'
#file:'docs/Transfer.md'
#file:'docs/IceWarpVsOX.md'
Projekt-Struktur
#file:'docs/FolderStructure.txt'
Implementierung und Refactoring nach
#file:'docs/CleanArchitectureCodingStandardsBestPractices.md'
Relevante Source Files
#file:'docs/ProviderV2SourceFiles.txt'
#file:'docs/TransferSourceFiles.txt'
PowerShell Helper
Hier kommt der eigentlicher „Secret Sauce“ die PowerShell Skriptes, die Copilot Workflows vereinfachen.
Die Scripts sind auf GitHub PowerShell Scripts Repository verfügbar.
Write Source File List
File: Export‑OpenVsFilesToSourceFiles.ps1
Exportiert alle aktuell in Visual Studio geöffneten Dateien in eine SourceFiles.txt im Format #file:'<path>'.
Optional: Gruppierung nach Typ (Controllers, Services, Razor Pages, …), Relative Pfade relativ zu einem Workspace‑Root
Nutzen:
- Du kannst „aktuellen Arbeitskontext“ aus Visual Studio direkt in eine Copilot‑Referenzliste exportieren.
- Ideal für Reviews, Refactorings oder „Bitte erkläre mir die Dateien in “.
Open Source Files (Workspace)
File: Open‑VsFiles.ps1
Liest eine Textdatei mit Zeilen im Format #file:'<Pfad>' und öffnet diese Dateien in einer laufenden Visual Studio 2022 Instanz.
Nutzen:
- Du kannst einen von Copilot‑Workflows erzeugten Kontext später wieder in Visual Studio öffnen.
- Ideal für „Workspace“: bestimmte Modul‑Dateien, die du regelmässig gemeinsam bearbeitest.
Tip
Ableitung von Open-VsFiles.ps1 ist ein eigenes Script SourceFilesToOpen.ps1 für das öffnen der SourceFiles.txt diese kann einfach kopiert und modifiziert werden für weitere Workspaces z.B. ProviderSourceFilesToOpen.ps1
File: SourceFilesToOpen.ps1
Ein kleiner Wrapper, der einfach das Öffnen der Standard‑Datei SourceFiles.txt kapselt.
.\Open-VsFiles.ps1 -FileListPath "SourceFiles.txt"
Nutzen:
- Minimaler Tippaufwand
- Du kannst dir z. B. eine Verknüpfung oder VS‑Task darauf legen.
Update Folder Structur
File: Update‑FolderStructure.ps1, Update‑FolderStructureV2.ps1
Erzeugt eine in ASCII Zeichen, grafisch dargestellte Folder Struktur deines Projekts und schreibt sie in FolderStructure.txt. Ideal, um Copilot die Projektstruktur zu zeigen oder sie in Dokumentation zu verwenden.
Nutzen:
- Copilot kann die Struktur besser verstehen („Wo liegt was?“).
- Du kannst die Struktur in Architektur‑Dokumente übernehmen.
Anweisungsgeneratoren und Beispiele
Generatoren, die beim Erstellen von Chat Prompts, Custom Instructions, Prompt Files und Project Document helfen.
| Name | Link | Beschreibung |
|---|---|---|
| CopilotCraft.dev | https://www.copilotcraft.dev/ | Generator für Cutom Instructions und Project Configuration |
| Copilot Instructions Generator | https://timheuer.github.io/ghcp-instructions/ | Template Generator mit Bibliothek |
| GitHub Customization Library | https://docs.github.com/en/copilot/tutorials/customization-library | GitHub Copilot Beispiele |
Fazit
Mit Hilfe von File-Referenzen und den PowerShell Scripts kannst du einfach, einen persönlichen und für das Team, einen Workflow definieren.
Der das Arbeiten im Projekt, sowie das persönliche Arbeiten, mit definierten Qualitätskriterien effizienter macht.
Mit der Kombination der PowerShell Scripts und Anweisungen aus den Generatoren, die selbstverständlich einer Kompetenzen Validierung durchlaufen, erhält man eine optimale und wiederverwendbare Arbeitsumgebung mit GitHub Copilot.
Beispiel:
- Mit
Export-OpenVsFilesToSourceFiles.ps1erzeugst du eineSourceFiles.txt. - Mit einem Generator erstellst du eine passende
.instructions.mdoder Prompt‑Datei. - Du referenzierst
SourceFiles.txtin deinem Prompt und nutzt Copilot mit maximalem, aber kontrolliertem Kontext.
