Kernen i ethvert Claude Skill er en enkelt Markdown-fil: SKILL.md. Den kombinerer YAML-frontmatter til metadata med Markdown til instruktioner og kontekst. I denne del gennemgår vi strukturen fra grunden, forklarer hvad hvert felt gør, og viser et komplet eksempel.
Grundlæggende SKILL.md-struktur
En SKILL.md-fil har følgende overordnede opbygning:
---
name: mit-skill
description: |
Kort beskrivelse af hvad Skill'et gør og hvornår det skal aktiveres.
Skriv præcist og undgå vage formuleringer.
tools:
- Bash
- Read
- Edit
metadata:
version: "1.0.0"
author: "Dit navn"
---
# Instruktioner til Skill'et
Her skriver du den fulde vejledning til Claude.
Lad os gennemgå hvert afsnit systematisk.
Obligatoriske felter
name
Et unikt, maskinlæsbart navn på Skill’et. Brug kun små bogstaver, bindestreger og eventuelt tal. Eksempel: draft-blog-post eller security-review.
description
Det vigtigste felt. Claude bruger dette til at afgøre, hvornår Skill’et skal aktiveres. En god description:
- Starter med et aktionsverb: “Draft…”, “Analyze…”, “Generate…”
- Specificerer konteksten: hvornår og på hvad
- Angiver eksempler på triggersætninger, hvis det hjælper
- Er præcis nok til ikke at aktivere Skill’et i forkerte situationer
Valgfrie felter
tools
En liste over de Claude Code-tools, Skill’et har tilladelse til at bruge. Hvis feltet udelades, arves standardtilladelserne. Eksempler på tools:
Bash– kørsel af shell-kommandoerRead,Edit,Write– filsystem-operationerWebFetch,WebSearch– netværksadgang- MCP-tools ved navn, f.eks.
mcp__slack__send_message
metadata
Fri-form nøgle/værdi-par til versionsstyring, forfatterskab, tags eller andet. Bruges ikke af Claude direkte, men er nyttig for distribution og vedligeholdelse:
metadata:
version: "1.2.0"
author: "Jan Hansen"
tags: ["marketing", "seo", "content"]
requires_mcp: slack
instructions (inline)
Selve Markdown-brødteksten efter frontmatter fungerer som den detaljerede instruktion til Claude. Her kan du bruge overskrifter, lister, kodeblokke og alt andet Markdown understøtter.
Progressiv vidensafsløring
Et veldisponeret Skill bruger tre niveauer af information, fra korteste til længste:
- YAML
description– den korteste, skarpeste formulering. Bruges til triggering og til at vise Skill’et i lister. - Kort instruktionsafsnit – øverst i Markdown-brødteksten: et kort overblik over hvad Skill’et gør trin for trin.
- Fuld kontekst – detaljerede regler, edge cases, kodeeksempler, referencer og forklaringer. Bruges kun, når Claude rent faktisk udfører Skill’et.
Denne lagdelte tilgang holder description’en præcis og undgår, at Claude overbelastes med information, når den blot skal vurdere, om Skill’et er relevant.
Sammensættelighed: Skills der kalder andre Skills
Skills kan benytte hinanden. Hvis du har et Skill til at generere en SEO-analyse og et andet til at skrive blogindlæg, kan et tredje “Redaktionsassistent”-Skill kalde dem begge i rækkefølge:
---
name: redaktionsassistent
description: |
Kører SEO-analyse og udkaster derefter et fuldt blogindlæg baseret på analysen.
Brug når brugeren beder om et SEO-optimeret blogindlæg.
---
## Trin
1. Kør Skill'et `seo-audit` på det angivne emne.
2. Brug outputtet som input til Skill'et `draft-blog-post`.
3. Returner det færdige udkast med SEO-noter.
Denne sammensætningsteknik er særlig kraftfuld, fordi hvert enkelt Skill forbliver fokuseret og testbart.
MCP-integration
For Skills der skal kommunikere med eksterne systemer angiver du de relevante MCP-tools i tools-listen. Eksempel med Slack-integration:
---
name: send-ugeopdatering
description: |
Samler ugens vigtigste projekt-opdateringer og sender dem som en besked til Slack.
Brug hver fredag eller når brugeren beder om en ugerapport til teamet.
tools:
- Read
- mcp__slack__send_message
- mcp__slack__read_channel
metadata:
version: "1.0.0"
requires_mcp: slack
---
## Instruktioner
1. Læs de seneste commits og åbne pull requests via `Read`.
2. Formuler en kort, struktureret opdatering på dansk.
3. Send beskeden til kanalen `#team-updates` via `mcp__slack__send_message`.
Komplet eksempel: et simpelt Skill
---
name: kommenter-kode
description: |
Tilføjer danske inline-kommentarer til eksisterende kode.
Brug når brugeren beder om at kommentere, dokumentere eller forklare kode.
tools:
- Read
- Edit
metadata:
version: "1.0.0"
author: "Jan Hansen"
tags: ["code", "documentation"]
---
# Kommenter kode
## Hvad dette Skill gør
Gennemgår den angivne kodefil og indsætter præcise, kortfattede kommentarer
på dansk direkte i koden. Kommentarerne forklarer *hvorfor*, ikke blot *hvad*.
## Regler
- Brug sprogets native kommentarsyntaks (`//`, `#`, `` osv.)
- Undgå at kommentere selvforklarende kode
- Bevar den eksisterende formatering
- Maksimalt ét kommentarlag per logisk blok
## Trin
1. Læs filen med `Read`.
2. Identificer de dele af koden, der kræver forklaring.
3. Indsæt kommentarer med `Edit`.
4. Rapportér hvilke sektioner der blev kommenteret.
Næste del i serien: Del 3: Planlægning og design af dit Skill