Lärarhandledning · L3
Prompt-filer och Instruktionsfiler
Studenterna skapar sina första prompt-filer och ser hur de styr Copilots beteende — det mest konkreta momentet hittills.
Lektionsmål
- Skilja mellan de tre filtyperna:
copilot-instructions.md, .instructions.md, .prompt.md
- Skapa en
.instructions.md med korrekt applyTo-frontmatter
- Verifiera att instruktionsfilen faktiskt påverkar Copilots svar
- Förstå varför prompt-filer är VS Code only (men copilot-instructions.md fungerar i båda IDEerna)
Agenda
0:00–0:30
Filtyper — teori och syntax
Gå igenom öviktstabellen: vad varje filtyp gör, var den placeras och vad den styr. Visa applyTo-glob-syntax.
0:30–1:05
Demo — skapa och aktivera alla tre filtyper
Live: skapa .github/copilot-instructions.md, .github/instructions/domain.instructions.md och .github/prompts/review.prompt.md. Visa att VS Code läser dem via chat-panel.
1:05–1:20
VS Code vs Visual Studio 2026 — begränsning
Kort genomgång: prompt-filer och .instructions.md fungerar bara i VS Code. copilot-instructions.md fungerar i båda. Viktig info för studenter som använder VS2026 hemma.
1:35–2:55
Workshop
Se workshopbeskrivning nedan.
Demo-script — Skapa och testa instruktionsfil
Steg 1 — Skapa utan instruktionsfil (baseline)
Be Copilot generera ett C#-repository-interface. Notera att svaret är generiskt och utan projektspecifika konventioner.
Steg 2 — Skapa instruktionsfilen
---
applyTo: "src/Domain/**/*.cs"
---
- Returnera alltid Result<T> från public metoder, aldrig null
- Klasser i domänlagret ärver alltid från AggregateRoot<TId>
- Konstruktorer är privata; exponera skapande via static Create()-metod
Steg 3 — Generera samma sak igen
Kör exakt samma prompt. Visa att Copilot nu genererar kod som följer reglerna. Diskutera skillnaden med klassen.
Workshop — instruktioner
Workshop L3 — Bygg en komplett prompt-filsvit
- Skapa mappstrukturen
.github/copilot-instructions.md, .github/instructions/, .github/prompts/
- Skriv en
copilot-instructions.md med minst fem projektspecifika regler (inte generella råd)
- Skapa en
domain.instructions.md med applyTo: "src/Domain/**/*.cs" och minst tre regler
- Skapa en
value-object.prompt.md med en mall för att generera Value Objects
- Testa varje fil: generera en klass utan instruktionsfilen, sedan med. Dokumentera skillnaden.
FAQ
| Fråga | Svar |
| "Varför syns inte min instruktionsfil i Copilot?" |
Kontrollera: (1) filen är i .github/instructions/, (2) frontmatter har korrekt YAML-syntax, (3) applyTo-mönstret matchar den öppna filens sökväg, (4) VS Code är omstartad efter att filen skapades. |
| "Vad händer om applyTo matchar för många filer?" |
Reglerna tillämpas på alla matchande filer. Det är oftast okej — instruktionsfiler är avsedda att gälla brett inom ett lager. Undvik **/* om du inte vill ha globalt scope. |
| "Kan jag ha konfliktande regler i flera instruktionsfiler?" |
Ja, och Copilot försöker balansera dem. Undvik konflikter genom att ha tydliga applyTo-scopar. Om en fil är mer specifik (kortare glob) väger den tyngre i praktiken. |
Nästa lektion — förberedelse
Läs del 05 (Copilot Skills). Be studenterna notera en arbetsuppgift de brukar göra manuellt som de tror agent-läget skulle kunna automatisera.