# Claude Code Skills i 2026: sådan opbygger du et Skills-bibliotek til dig selv

> Sådan opretter du Claude Code Skills: SKILL.md-struktur, formlen for beskrivelsen, færdige samlinger fra Anthropic samt nyttige mønstre. Trin for trin på 30 minutter.

Source: https://ailoot.ai/blog/da/claude-code-skills-library/
Canonical: https://ailoot.ai/blog/da/claude-code-skills-library/
Language: da
Publisher: Ailoot (https://ailoot.ai/)
Translation: guide-213
Revision: sha256-64f781e3b121e136eda574e12f5089d7b6c57b4be68a6d8af1bced5c88d5cbe9


<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Vigtige punkter i dette afsnit">

Vigtige punkter

Claude Code Skills er mapper med en SKILL.md-fil, som Claude kun indlæser i konteksten, når der er brug for den. CLAUDE.md er i hukommelsen hele tiden og bruger af tokenbudgettet, mens en skill indlæses, når den udløses – og snesevis af skills kan nemt eksistere side om side i ét projekt. Den vigtigste del af en skill er dens beskrivelse: Claude bruger den til at afgøre, om skillen skal aktiveres. I denne artikel forklarer jeg SKILL.md-strukturen, formlen for beskrivelsen, færdige samlinger, og hvordan du opbygger din første skill på 30 minutter.

</div>

[Ailoot-dokumentation: API, nøgler og opsætning](https://ailoot.ai/docs/).

## Hvad er en skill i Claude Code, og hvorfor er det ikke bare “en større prompt”?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Vigtige punkter i dette afsnit">

Vigtige punkter

En skill er en mappe med en SKILL.md-fil, der beskriver, hvornår og hvordan en bestemt metode skal anvendes. Anthropic sammenligner en skill med instruktioner til en ny medarbejder: Du dikterer ikke hvert trin hver dag; du giver dem en procedure, som de selv anvender i de rette situationer. Den største forskel fra CLAUDE.md er, at en skill kun indlæses i konteksten, når der er brug for den, så snesevis af skills kan ligge i et projekt uden at overskride tokenbudgettet.

</div>

Claude Code Skills er en indbygget Claude Code-funktion, som Anthropic lancerede i oktober 2025 for Pro/Max/Team/Enterprise. Senere åbnede de specifikationen [Agent Skills](https://agentskills.io) som en standard, der også fungerer uden for Claude. I kode er det bare en mappe:

```
.claude/skills/
├── deploy-to-prod/
│   ├── SKILL.md
│   └── scripts/
│       └── check-migrations.sh
├── weekly-content-plan/
│   └── SKILL.md
└── triage-support-tickets/
    └── SKILL.md
```

Hver mappe er én skill. Filen `SKILL.md` er Markdown med YAML-frontmatter øverst og almindelige instruktioner nedenunder. Når en bruger siger: “lad os udrulle til produktion”, ser Claude beskrivelsen af skillen `deploy-to-prod`, genkender udløseren “udrulle til produktion”, indlæser indholdet af SKILL.md i konteksten og følger trinnene.

### Tre niveauer af gradvis indlæsning

Anthropic byggede skills med gradvis indlæsning: Data indlæses i lag efter behov. I Anthropics Engineering-blog beskriver teamet dette som “det centrale designprincip, der gør Agent Skills fleksible og skalerbare” ([Anthropic Engineering](https://www.anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skills)).

De tre indlæsningsniveauer:

1.  **Metadata (altid)** - når en session starter, ser Claude kun `name` og `description` for hver skill. Budget: cirka 100 tokens pr. skill.
2.  **Instruktioner (ved udløser)** - når brugeren siger noget relevant, indlæser Claude indholdet af SKILL.md. Budget: færre end 5000 tokens.
3.  **Ressourcer (efter anmodning)** - medfølgende filer (eksempler, skabeloner, datasæt) hentes kun, når modellen selv leder efter dem. Budget: ubegrænset.

Tidligere skulle [CLAUDE.md](https://ailoot.ai/blog/da/claude-md-template/) indeholde alt, hvad AI’en skulle “huske” – og et projekt med 50 regler ramte hurtigt kontekstgrænsen. Med skills kan snesevis nemt eksistere side om side i et projekt, fordi kun deres beskrivelser indgår i den indledende kontekst.

### Hvor skills ligger: fire niveauer

| Niveau | Sti | Gælder for |
|------------|-----------------------------------|--------------------|
| Enterprise | Administrerede organisationsindstillinger | Alle virksomhedens brugere |
| Personlig | `~/.claude/skills/<name>/SKILL.md` | Alle dine projekter |
| Projekt | `.claude/skills/<name>/SKILL.md` | Kun dette projekt |
| Plugin | `<plugin>/skills/<name>/SKILL.md` | Hvor pluginet er aktiveret |

Prioritet: enterprise tilsidesætter personlig, personlig tilsidesætter projekt. Plugins bruger navnerummet `plugin-name:skill-name` og kommer ikke i konflikt. Det er praktisk: læg generelle faglige skills i `~/.claude/skills/` og projektspecifikke i arkivets `.claude/skills/`.

## Hvad indeholder en SKILL.md?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Vigtige punkter i dette afsnit">

Vigtige punkter

SKILL.md er en Markdown-fil med YAML-frontmatter øverst og instruktionstekst nedenunder. Som minimum har den to felter: name (op til 64 tegn) og description (op til 1024 tegn). Det fulde skema omfatter allowed-tools, disable-model-invocation, paths, context: fork, agent og hooks. Anthropic anbefaler at holde instruktionsteksten inden for 500 linjer og lægge alt andet i nærliggende referencefiler.

</div>

Her er et minimalt eksempel – tyve linjer, og skillen er klar:

```markdown
---
name: weekly-content-plan
description: Forbereder en ugentlig plan for opslag til en Telegram-kanal og korte videoer. Udløsere - "lav en opslagplan", "hvad skal jeg slå op i denne uge", "en 7-dages kanalplan". Aktivér ikke, hvis anmodningen handler om et website eller et e-mailnyhedsbrev.
---

# Weekly Content Plan

## Trin

1. Læs `knowledge/audience.md` - hvem vi skriver til
2. Læs `knowledge/tone-of-voice.md` - hvordan vi skriver
3. Læs de seneste 10 opslag i kanalen - hvad der allerede er dækket
4. Find på 7 emner for ugen: 3 salgsfokuserede, 2 faglige, 2 personlige
5. Giv én hooklinje og tre punkter om opslaget for hvert emne
6. Output som en tabel: ugedag | type | hook | plan
```

Det er nok. Hvis en bruger skriver: “lad os planlægge opslag for ugen”, ser Claude udløseren i beskrivelsen, indlæser SKILL.md, læser de navngivne filer og outputter en tabel.

### Begrænsninger, du skal være opmærksom på

Den [officielle Claude API-dokumentation](https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview) fastsætter strenge grænser:

- **`name`**: op til 64 tegn, kun små bogstaver, tal og bindestreger, uden XML-tags. `anthropic` og `claude` er reserverede.
- **`description`**: op til 1024 tegn i API'et; påkrævet og uden XML-tags.
- **Listningsbudget**: I Claude Code fylder beskrivelserne af alle skills tilsammen cirka 1 % af kontekstvinduet. Hvis der er mange skills, afkortes beskrivelserne – og de nøgleord, Claude skal bruge til matchning, kan forsvinde.
- **SKILL.md-indhold**: Anthropic anbefaler at holde indholdet inden for 500 linjer. Flyt alt, der er længere, til filer i `references/`, `scripts/` og `examples/`, og indlæs dem via instruktionerne.

Efter kontekstkomprimering (`/compact`) bevarer Claude de første 5000 tokens af hver tidligere anvendt skill; det samlede budget for alle genindlæste skills er 25 000 tokens. Hvis en skill ikke passer, bliver dens adfærd “glemt”.

### Fuldt frontmatter-skema

Brug som minimum `name` og `description`. Produktionsskills bruger også andre felter:

| Felt | Formål | Eksempel |
|----|----|----|
| `name` | Skillens navn; mappenavnet bruges som standard, hvis feltet udelades | `deploy-to-prod` |
| `description` | Udløser for automatisk aktivering | Se formlen nedenfor |
| `when_to_use` | Yderligere udløserfraser | `["deploy", "let's ship it"]` |
| `allowed-tools` | Værktøjer, der kan bruges uden at bede om tilladelse | `["Read", "Bash(npm run build)"]` |
| `disable-model-invocation` | `true` - kun brugeren kan aktivere den | Til farlige handlinger |
| `user-invocable` | `false` - kun Claude kan aktivere den | Til baggrundsviden |
| `paths` | Globmønstre, hvor skillen er aktiv | `["src/**/*.ts"]` |
| `context: fork` | Kør i en isoleret underagent | Når konteksten er omfattende |
| `agent` | Type af underagent, der skal startes | `Explore`, `Plan`, `general-purpose` |
| `effort` | Resonementsniveau | `low`, `medium`, `high`, `xhigh`, `max` |
| `model` | Hvilken model skillen skal bruge | `claude-opus-4-7` |
| `hooks` | Hooks i skillens livscyklus | Se afsnittet om hooks |

Feltet `disable-model-invocation: true` er et must for alt, der ikke må køre automatisk. For eksempel kan en `deploy-to-prod`-skill med dette flag kun aktiveres, hvis brugeren udtrykkeligt skriver `/deploy-to-prod`. Uden flaget kunne Claude udrulle, fordi “koden ser klar ud”.

## Hvorfor står beskrivelsen for 90 % af arbejdet, og hvordan skriver du en?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Vigtige punkter i dette afsnit">

Vigtige punkter

Beskrivelsen er det eneste felt, Claude ser ved starten af en session. Hvis den er dårligt skrevet, fungerer skillen ikke, selv hvis instruktionerne er perfekte. En god beskrivelse har tre dele: hvad den gør + udløserfraser i anførselstegn + hvornår den IKKE skal bruges. I sin egen `skill-creator` anbefaler Anthropic, at beskrivelser er “lidt pågående” – Claude har tendens til at udløse for sjældent.

</div>

Den mest almindelige fejl blandt vibe-codere er at skrive en beskrivelse som “Hjælper med X”. Skillen findes fysisk i sin mappe, men Claude aktiverer den ikke.

### En dårlig beskrivelse

```yaml
description: Byg dashboards.
```

Hvad Claude ikke kan afgøre: Når brugeren spørger “vis mig salget for ugen”, handler det så om et dashboard eller ej? Når brugeren beder om et “omsætningsdiagram”, handler det så om et dashboard eller bare et diagram generelt? Når de beder om en “månedsrapport”, er det så helt sikkert ikke et dashboard?

Anthropics [egen `skill-creator`](https://github.com/anthropics/skills/blob/main/skills/skill-creator/SKILL.md) fremsætter anbefalingen direkte:

<figure>
<blockquote>
<p>Claude har i øjeblikket en tendens til at 'underudløse' skills – ikke at bruge dem, hvor de ville være nyttige. Modvirk dette ved at gøre skillbeskrivelser lidt 'pågående'.</p>
</blockquote>
<figcaption>— Anthropic Skill Creator (SKILL.md), https://github.com/anthropics/skills/blob/main/skills/skill-creator/SKILL.md</figcaption>
</figure>

### Formlen på en god beskrivelse

Tre dele:

1.  **Hvad den gør** - én sætning om resultatet, ikke processen. Ikke “genererer SQL”, men “eksporterer salg til en tabel til en Telegram-kanal”.
2.  **Hvornår den skal udløses** - 3-5 citerede fraser, som brugerne faktisk siger. Gæt ikke; kig i din chat- og supporthistorik.
3.  **Hvornår den IKKE skal udløses** - 1-2 fraser om lignende opgaver, skillen ikke skal svare på. Uden dette afsnit vil to lignende skills blive ved med at være i konflikt.

Et eksempel på en stærk beskrivelse fra mit projekt (forenklet og anonymiseret):

```yaml
description: |
  Skriver og udgiver en SEO-guide på bloggen i overensstemmelse med den redaktionelle politik.
  Udløsere: "skriv en guide om X", "lad os lave en ny pillar",
  "en blogartikel om Y", "lav en blogguide om Z".
  Aktivér ikke, hvis anmodningen handler om et e-mailnyhedsbrev,
  et Telegram-opslag eller en intern teaminstruktion –
  det er andre skills.
```

Det, der fungerer her:

- Verbet “skriver og udgiver” i stedet for “hjælper med” angiver et konkret resultat.
- Fire udløserfraser i anførselstegn dækker forskellige formuleringer.
- En engelsk udløser er også med – hvis brugeren skifter til teamets sprog, fungerer skillen stadig.
- Et separat afsnit med “aktivér ikke, hvis” forebygger konflikter med e-mail- og opslagsskills.

### Sådan tester du en beskrivelse

I sin `skill-creator` indbyggede Anthropic en metode til udløser-evaluering: 20 prompts til at kontrollere, om en skill aktiveres. Ti skal udløse den, og ti skal ikke (inklusive næsten-træffere, hvor formuleringen ligner, men opgaven er en anden).

Med vibe-coderens ord betyder det: Når du har skrevet beskrivelsen, skal du åbne en tom chat og prøve 5 fraser, du virkelig bruger, plus 3 fraser, der lyder lignende, men betyder noget andet. Hvis skillen ikke aktiveres, hvor den burde, eller aktiveres, hvor den ikke burde, skal du revidere beskrivelsen. Skriv først derefter instruktionsdelen.

## Hvilke 5 skills ville jeg installere først?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Vigtige punkter i dette afsnit">

Vigtige punkter

Den hurtigste strategi for en iværksætter er at starte med færdige samlinger og tilpasse dem. Anthropic og Vercel har udgivet offentlige samlinger, der kan installeres med én kommando og dækker typiske opgaver som dokumenter og design. I maj 2026 er det officielle `anthropics/skills`-repository på omkring 138.000 stjerner.

</div>

At bruge de første to uger på at skrive dine egne skills er en dårlig strategi. Start med at installere færdige skills og se, hvordan de er bygget; tilføj derefter dine egne med samme fremgangsmåde. Det er billigere at tage gennemprøvede samlinger, andre har lavet, og tilpasse dem til dig selv end at bygge alt fra bunden. Her er fem samlinger, jeg ville starte med:

### 1. anthropics/skills - officiel samling med skill-creator

Repository: [github.com/anthropics/skills](https://github.com/anthropics/skills). 138,000 GitHub-stjerner. Den indeholder officielle skills fra Anthropic-teamet: `skill-creator` (en meta-skill, der skriver andre skills), `claude-api` (hjælper med at bygge API-integrationer) og færdige dokumentskills til PowerPoint, Excel, Word og PDF.

Installér med Claude Code:

```bash
/plugin marketplace add anthropics/skills
/plugin install document-skills@anthropic-agent-skills
/plugin install example-skills@anthropic-agent-skills
```

Den største værdi er `skill-creator`. Den skriver en SKILL.md ud fra din beskrivelse, kører derefter 20 udløser-evalueringer og reviderer beskrivelsen, indtil skillen begynder at blive aktiveret, hvor den skal. I bund og grund er det “en skill til at skabe skills”.

### 2. mattpocock/skills - den virale samling fra en TypeScript-ekspert



Den indeholder 12 aktive skills, herunder:



Installér:

```bash
npx skills@latest add mattpocock/skills
/setup-matt-pocock-skills
```

### 3. coreyhaines31/marketingskills - en samling til marketingfolk



Hvis du driver onlineprogrammer, arbejder som freelance marketingmedarbejder eller driver et bureau, behøver du ikke bruge seks måneder på at skrive dine egne skills. Halvdelen af opgaverne er allerede pakket ind.

### 4. vercel-labs/agent-skills - design uden AI-look

Repository: [github.com/vercel-labs/agent-skills](https://github.com/vercel-labs/agent-skills). Dens førende skill er `web-design-guidelines`, med omkring 133,000 installationer om ugen. Den auditerer UI-kode efter mere end 100 regler for tilgængelighed, ydeevne og brugervenlighed.

Sammen med den findes [Anthropics frontend-design](https://github.com/anthropics/skills/tree/main/skills/frontend-design), med over 110,000 installationer om ugen. Den får AI til at vælge en stil, før den begynder at skrive kode. Uden den har alle sider, Claude genererer, skrifttypen Inter, en lilla gradient og kort i et gitter. Resultatet er det samme for alle.



### 5. obra/superpowers - arbejdsgang med flere agenter



Hvis du installerer de første tre på listen – `anthropics/skills`, `mattpocock/skills` og `coreyhaines31/marketingskills` – får din Claude Code snesevis af færdige skills, der dækker de fleste af en iværksætters opgaver i den første måned.

Vil du ikke bare installere færdige skills, men også bygge **en opsætning, der gør Claude til din rigtige assistent**? Skills er en af metodens tre grundpiller. En fungerende opsætning har tre dele: **AI-klon** (Skills som pakket ekspertise) + **[Second Brain](https://ailoot.ai/blog/da/claude-code-second-brain/)** (en vidensstruktur til kontekst) + **Context Engineering** (hvordan Claude ser projektet som helhed). Denne opsætning forvandler Claude fra en assistent, der gætter, til et værktøj, der tænker efter din logik.

## Hvilke gentagne opgaver bør du lave om til en skill?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Vigtige punkter i dette afsnit">

Vigtige punkter

Reglen er enkel: Enhver opgave, du udfører mere end to gange om ugen, og som følger nogenlunde de samme trin, er en kandidat til en skill. Ikke en kompliceret “årsrapport til revisoren”, men rutinearbejde: en indholdsplan til en kanal, kontrol af klientkvitteringer, en velkomstmail til en ny deltager. En skill gør en enkeltstående indsats til et aktiv, der virker uden dig.

</div>

I klientarbejde og andres projekter har jeg set dette mønster snesevis af gange. Nogen har “den der ting, de gør fra bunden hver gang”. Hver mandag skriver de den samme slags rapport. Hver gang en ny kunde begynder, gennemgår de den samme procedure. Hver publikation følger den samme skabelon. Og hver gang tager det 30-90 minutter, fordi de skal huske trinnene, åbne de rigtige filer og formulere Claude-prompten helt forfra.

Løsningen er at pakke det ind i en skill én gang. Derefter siger du én sætning, og Claude indlæser metoden, læser de nødvendige kilder og producerer resultatet. Tre eksempler fra forskellige fagområder:

### Eksempel 1. Freelance marketingmedarbejder - skillen `weekly-content-plan`

Hvad de gør manuelt: hver mandag forbereder de en uges Telegram-opslag til tre kunder. De åbner kundens guide til brandets tone, gennemgår de seneste opslag, finder på emner ud fra produktkalenderen og laver en tabel med hooks og punkter.

Som skill bliver det til en instruktion i fem trin: læs kundens fil om tone of voice, læs produktkalenderen, tjek de seneste 10 opslag for gentagelser, find på syv emner fordelt efter type (salgsfokuserede, faglige, personlige), og output en tabel.

Kommandoen “lad os planlægge opslag for kunde X for ugen” forvandler en times forberedelse til tre minutters ventetid. Marketingmedarbejderen tjekker resultatet, laver målrettede rettelser og sender det til kunden.

### Eksempel 2. Ekstern bogholder - skillen `monthly-receipts-close` (forfatterens eksempel)

Hvad de gør manuelt: For hver kunde i porteføljen eksporterer de hver måned kontoudtoget, afstemmer det med betalingerne i regnskabssystemet, markerer uklassificerede betalinger, udarbejder en foreløbig indkomstrapport og sammenligner indtægternes sammensætning med den foregående måned.

Skillen er en instruktion i seks trin plus et par shell-scripts i mappen `scripts/` til at fortolke kontoudtog. Udløseren “luk maj for kunde X” får Claude til at lave en rapport med markerede afvigelser på 4-5 minutter.

### Eksempel 3. Skaber af onlineprogram - skillen `welcome-letter-new-participant`

Hvad de gør manuelt: En ny deltager har betalt, og de skal skrive en velkomstmail. En god velkomst er personlig: Den tager højde for, hvilken kanal personen kom fra, hvilket produkt vedkommende købte, hvilket hold vedkommende er på, og hvilke materialer der skal sendes med. En skabelon med “hej, hvor er vi glade” gør ikke det.

Skillen instruerer Claude i at læse `knowledge/audience.md` (hvem disse mennesker er), `knowledge/products/<product>.md` (hvad de får) og de seneste tre velkomstmails (for at undgå gentagelser) og derefter skrive mailen efter denne struktur: hook - produktspecifikke detaljer - de første tre trin - afslutning.

Mange gange hurtigere end at gøre det manuelt. Kvaliteten er mere ensartet, fordi Claude husker at tjekke tre kilder, mens en person, der har travlt, springer en over.

### Hvad du IKKE skal lave om til en skill

- **Engangsopgaver**. Hvis du gør det én gang om året, når du indsender en selvangivelse, kan du bare beskrive det for Claude i chatten. En skill betaler sig efter 3+ gentagelser.
- **Opgaver, der er for generelle**. “Hjælp mig med marketing” er ikke en skill; det er al marketing. En skill er “en ugentlig indholdsplan” – en bestemt handling med et bestemt resultat.
- **Opgaver uden gentagelige trin**. Hvis processen er forskellig hver gang, er det ikke en skill; det er engangsarbejde.

## Hvordan skriver Skill Creator skills for dig?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Vigtige punkter i dette afsnit">

Vigtige punkter

Skill Creator er en meta-skill fra Anthropic, lanceret med kommandoen `/skill-creator`. Den fører dig gennem seks trin: udkast, test, evaluering, iteration, optimering og pakning. Resultatet er en klar-til-brug SKILL.md, testet med 20 udløser-evalueringer (10, der skal udløse, og 10, der ikke skal). For en ikke-programmør er det den hurtigste måde at skrive en første fungerende skill på – uden at skulle finde ud af YAML eller diskutere med Claude.

</div>

Problemet er, at det er svært at skrive en god skill rigtigt første gang. En beskrivelse ender ofte med at være for snæver eller for bred, mangler de fraser, brugerne faktisk bruger, eller er i konflikt med en nærliggende skill. Anthropic løste dette ved at udgive [skill-creator](https://github.com/anthropics/skills/blob/main/skills/skill-creator/SKILL.md), en meta-skill, der kan skabe andre skills.

Når du har installeret `anthropics/skills`, skal du sige `/skill-creator` til Claude (eller bare “lad os lave en skill til ugerapporten”) og følge en arbejdsgang i seks trin:

1.  **Udkast** - skill-creator stiller spørgsmål: hvad skillen skal gøre, hvilke udløserfraser der skal bruges, hvilke kilder den skal læse, og hvilke trin den skal følge. Resultatet er den første version af SKILL.md.
2.  **Test** - skill-creator genererer 20 testprompts: 10, der skal udløse skillen, og 10, der lyder som udløsere, men ikke skal gøre det (næsten-træffere).
3.  **Evaluering** - den kører hver prompt i en ny chat og tjekker, om skillen blev aktiveret. Hvis den aktiveres, hvor den ikke skal, eller ikke aktiveres, hvor den skal, markeres resultatet.
4.  **Iteration** - den omskriver beskrivelsen ud fra fejlene og kører testene igen.
5.  **Optimering** - den afsluttende finpudsning: tjekker, om grænsen på 1024 tegn overskrides, og om der er konflikter med eksisterende projektskills.
6.  **Pakning** - pakker den endelige SKILL.md og referencefilerne i den korrekte struktur.

I praksis ser det sådan ud: Du taler med Claude i 15-20 minutter, besvarer 7-8 afklarende spørgsmål og får en klar, testet skill til sidst, som aktiveres af de rigtige udløsere.

En anden fordel er, at `skill-creator` viser en eksemplarisk stil til at skrive SKILL.md. Du kan åbne dens egen fil og se formatet, tonen og strukturen i trinnene. Det er et tilfælde, hvor værktøjet demonstrerer sig selv – du læser det og lærer at skrive dine egne.

## Skills, CLAUDE.md, underagenter, MCP, hooks: hvad skal du bruge?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Vigtige punkter i dette afsnit">

Vigtige punkter

Claude Code har fem forskellige byggesten til at udvide adfærden, og de kan ikke erstatte hinanden. CLAUDE.md er permanent projektviden. Skills er gentagelige arbejdsgange, der aktiveres af udløsere. Underagenter udfører arbejde parallelt i en separat kontekst. MCP forbinder eksterne systemer (API'er, databaser). Hooks reagerer automatisk på begivenheder. Den mest almindelige fejl blandt vibe-codere er at putte alt ind i CLAUDE.md eller prøve at lave en skill med en hook.

</div>

Det mest almindelige problem i projekter, jeg har gennemgået, er, at CLAUDE.md indeholder projektregler, trin-for-trin-vejledning til udgivelse, en commit-skabelon og en databasebeskrivelse alt sammen. Det overbelaster konteksten og fungerer heller ikke i praksis: Claude udfører ikke instruktionen “når brugeren beder om at udgive”, fordi modellen behandler hele CLAUDE.md som generel kontekst uden eksplicitte udløsere.

Løsningen er at tildele hvert element den rigtige byggesten:

| Hvad | Hvornår skal den bruges | Eksempel |
|----|----|----|
| **CLAUDE.md** | Viden, der altid er nødvendig | “Projektet har et fast sprog”, “ingen lange tankestreger i tekst”, “brandet staves med et ‘o’” |
| **Skills** | En gentagelig proces, der aktiveres af en udløser | “Udrul til produktion”, “ugentlig opslagplan”, “luk kundens regnskab for måneden” |
| **Underagenter** | Parallelt arbejde eller isolering af omfattende kontekst | “Sikkerhedsaudit, mens jeg planlægger en ny funktion”, “gennemgå kodebasen i en separat session” |
| **MCP** | Forbindelse til et eksternt system | “Hent data fra CRM”, “hent opgaver fra trackeren”, “tjek websitet i en browser” |
| **Hooks** | Automatisk reaktion på en begivenhed | “Kør et tjek efter Edit”, “blokér farlige kommandoer”, “send en Telegram-notifikation, når arbejdet er færdigt” |

I Alex Ops gennemgang af Claude Code-byggesten (“Understanding Claude Code's Full Stack”) koges billedet ned til enkel logik: Skills og MCP dækker de fleste arbejdsgange; Hooks automatiserer rutineopgaver – kodetjek, tests og sikkerhedsforanstaltninger. Underagenter er nødvendige, når konteksten bliver omfattende. Den mest almindelige fejl er at oprette en underagent, hvor man burde bruge en skill.

### Beslutningstræ

Når du tænker: “Jeg skal have Claude til at gøre X”:

1.  **Er denne viden nødvendig hele tiden?** For eksempel: “Projektet har et fast sprog” eller “vi bruger ikke em-dashes.” → Læg det i `CLAUDE.md`.
2.  **Er det en procedure, der udløses af noget, og som du i øjeblikket udfører manuelt?** For eksempel: “Jeg skriver en rapport hver mandag.” → Lav en **skill**.
3.  **Har du brug for adgang til et eksternt system?** For eksempel Stripe API eller dit CRM. → Tilslut en **MCP-server**.
4.  **Skal Claude Code reagere automatisk på en begivenhed?** For eksempel køre en linter efter hver Edit. → Skriv en **hook**.
5.  **Er opgaven omfattende, vil den bruge al konteksten, og skal du lave noget andet parallelt?** → Kør den i en **underagent**.

90 % af en iværksætters vibe-coder-opgaver falder i kategorierne 1-3. Hooks og underagenter er værktøjer på næste niveau, når du er kommet videre fra “én opgave ad gangen”.

### Slash-kommandoer og skills er det samme

En vigtig ændring i Claude Code: Det gamle slash-kommando-system (`.claude/commands/`) og skills er i praksis blevet slået sammen. Filen `.claude/commands/deploy.md` og `.claude/skills/deploy/SKILL.md` opretter begge en `/deploy`-kommando. Hvis navnene matcher, vinder skillen. Så hvis du stadig bruger det gamle slash-kommandoformat, så gå over til skills; syntaksen er tydeligere, og der er flere funktioner.

## 7 fejl, der forhindrer en skill i at fungere

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Vigtige punkter i dette afsnit">

Vigtige punkter

De mest almindelige skillproblemer er ikke Claude-fejl; de er fejl i selve skillen. En beskrivelse uden udløsere, en overfyldt SKILL.md på 2,000 linjer, to lignende skills i konflikt eller et forsøg på at downloade “alt på markedspladsen”. Hver af disse fejl ødelægger enten aktiveringen eller måden, skillen fungerer på.

</div>

### 1. En beskrivelse uden udløsere: Skillen aktiveres ikke

Symptom: Du har skrevet en skill, kontrolleret strukturen, og alt er gyldigt, men Claude aktiverer den ikke ved brugerens anmodninger. Årsagen er næsten altid den samme: en beskrivelse som “Hjælper med indholdsskrivning”. Claude ved ikke, hvilke fraser den skal reagere på. Løsning: Sæt 3-5 faktiske brugerfraser i anførselstegn direkte i beskrivelsen.

### 2. SKILL.md over 500 linjer: Opmærksomheden svigter

Anthropic [anbefaler udtrykkeligt](https://code.claude.com/docs/en/skills), at filens indhold holdes inden for 500 linjer. Hvis dine instruktioner er 2,000 linjer lange, mister Claude fokus, følger kun trinnene delvist og bliver forvirret over rækkefølgen. Løsning: Flyt store afsnit til nærliggende filer – `examples/`, `references/`, `scripts/` – og henvis til dem fra SKILL.md.

### 3. Én skill til “alt om indhold” i stedet for tre små

En fristende opsætning: én stor `content`-skill med Telegram-opslag, landingssider og e-mail. Det fungerer ikke. Skillen aktiveres ved forkerte anmodninger, blander metoderne sammen og producerer et gennemsnitligt resultat. Løsning: Én skill = én gentagelig handling. Hvis du faktisk har tre rutiner omkring “indhold”, så lav tre skills: `telegram-post`, `landing-section`, `email-broadcast`.

### 4. Skill uden afsnittet “Hvornår den IKKE skal bruges”: Konflikter

Symptom: Der er to lignende skills i projektet, og Claude aktiverer den forkerte. For eksempel handler en skill om et e-mailnyhedsbrev, og en anden specifikt om velkomstmails til programdeltagere. Uden en eksplicit klausul om ikke at aktivere den, hvis anmodningen handler om en generel mailingliste, udløses velkomstmail-skillen ved enhver omtale af “e-mail”. Løsning: Angiv negative tilfælde i beskrivelsen.

### 5. 50 skills i et projekt: Beskrivelserne afkortes

Fra [Claude Code-dokumentationen](https://code.claude.com/docs/en/skills):

<figure>
<blockquote>
<p>Skillnavne er altid inkluderet, men hvis der er mange skills, afkortes deres beskrivelser for at holde sig inden for tegnbegrænsningen, hvilket kan fjerne de nøgleord, Claude bruger til at matche din anmodning. Budget - 1% af modellens kontekstvindue.</p>
</blockquote>
<figcaption>— Claude Code-dokumentation, https://code.claude.com/docs/en/skills</figcaption>
</figure>

Hvis du har downloadet 50 skillsamlinger fra en markedsplads, vil nogle beskrivelser blive afkortet. De nøgleord, du regnede med, kan forsvinde. Løsning: Behold de 10-15 mest nyttige skills i det aktive projekt. Behold resten i et inaktivt arkiv uden for alle mapper, hvor skills opdages, for eksempel en separat `skill-archive/` i egne materialer. Installér kun nødvendige skills i projekt- eller brugerscope. `~/.claude/skills/` er et installeret personligt bibliotek synligt på tværs af projekter, så flytning dertil fjerner ikke skills fra opdagelsen.

### 6. Skills fra ubekræftede kilder: Sikkerhedsrisiko

Anthropic advarer om dette i den [officielle dokumentation](https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview):

<figure>
<blockquote>
<p>Brug kun skills fra betroede kilder: dem, du selv har oprettet, eller som du har modtaget fra Anthropic. En ondsindet skill kan få Claude til at kalde værktøjer eller køre kode på måder, der afviger fra skillens erklærede formål.</p>
</blockquote>
<figcaption>— Oversigt over Anthropic Agent Skills, https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview</figcaption>
</figure>

Et tilfældigt GitHub-repository kan indeholde en skill, der lækker dine API-nøgler, første gang du aktiverer den. Løsning: Åbn SKILL.md og læs den selv, før du installerer. Kør ikke skills fra ukendte forfattere i vigtige projekter.

### 7. En skill uden en vidensmappe giver “gennemsnitlig ChatGPT”

Det mest subtile og almindelige antimønster. En skill er en metode, men metoden betyder intet uden kontekst. Hvis du skriver en skill til at “lave en velkomstmail”, men projektet ikke har en fil, der beskriver målgruppen, eller en fil om brandets tone, skriver Claude en gennemsnitlig ChatGPT-mail, der ikke kan skelnes fra alle andres.

En skill fungerer bedst, når du allerede har bygget projektets [Second Brain](https://ailoot.ai/blog/da/claude-code-second-brain/) efter principperne i [guiden om CLAUDE.md](https://ailoot.ai/blog/da/claude-md-template/). Byg først vidensstrukturen, og opret derefter skills, der bygger på den. Gør du det i omvendt rækkefølge, får du rutinemæssig gennemsnitskvalitet i stedet for personligt arbejde i din stil.

## Sådan bygger du din første skill på 30 minutter

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Vigtige punkter i dette afsnit">

Vigtige punkter

En trinvis opskrift på at bygge din første fungerende skill: Vælg én gentagelig handling, skriv trinnene ned, opret mappestrukturen, skriv beskrivelsen med formlen, test den med 5-8 prompts, og iterér, indtil den aktiveres, hvor den skal. En realistisk tidsramme for en første skill er 30-40 minutter. Hver efterfølgende tager 10-15 minutter, fordi formatet bliver velkendt.

</div>

Her er den konkrete plan, jeg brugte til at bygge de første skills i mine projekter:

### Trin 1. Vælg én gentagelig handling

Åbn din kalender for den seneste måned. Find en opgave, du har udført mindst 4-5 gange, som tager 30-60 minutter hver gang. Ikke bred “marketing”, men noget specifikt: “mandagsrapport om salg”, “onboarding af en ny kunde” eller “opdatering af prisliste til en kampagne”.

Jo smallere formuleringen er, desto enklere bliver skillen og desto tydeligere bliver udløseren.

### Trin 2. Skriv processen ned manuelt

Skriv de trin, du følger, ned i en separat fil eller i en chat med Claude (ikke til skillen, men som et udkast):

```
1. Åbn kundedatabasen
2. Filtrér efter status "awaiting welcome email"
3. Kontrollér, hvilken kanal kunden kom fra
4. Hent e-mailskabelonen for den kanal fra mappen "templates"
5. Udfyld navn, produkt og startdato
6. Send
```

Dette er ikke en skill endnu; det er noter. Men uden disse noter bliver du forvirret fra starten, når du skriver SKILL.md.

### Trin 3. Opret mappestrukturen

```bash
mkdir -p .claude/skills/welcome-email-new-client
touch .claude/skills/welcome-email-new-client/SKILL.md
```

Eller, hvis du vil bruge skillen på tværs af alle dine projekter, så læg den i `~/.claude/skills/`.

### Trin 4. Skriv SKILL.md med skabelonen

Skelet:

```markdown
---
name: welcome-email-new-client
description: |
  Forbereder en velkomstmail til en ny kunde ved hjælp af skabelonen til kundens anskaffelseskanal.
  Udløsere: "skriv en velkomstmail til den nye kunde X",
  "introducér den nye deltager Y", "velkomstmail til en kunde fra kanal Z".
  Aktivér ikke, hvis anmodningen handler om en generel mailingliste
  eller en e-mailkampagne – det er andre færdigheder.
---

# Velkomstmail til en ny kunde

## Trin

1. Læs `knowledge/audience/segments.md` - hvilke kundesegmenter vi har
2. Læs `knowledge/templates/welcome/` - skabeloner efter kanal
3. Identificér kundens kanal ud fra konteksten i anmodningen
4. Indsæt kundens navn, produktnavn og startdato
5. Kontrollér længden – den må højst være 800 tegn
6. Skriv den endelige e-mailtekst i et format, der er klar til at kopiere

## Vigtigt

- Brug ikke “kære ven” eller “hej” – brug naturligt sprog
- Ét afsnit, én idé
- Afslut med én opfordring til handling, ikke to
```

### Trin 5. Test med 5-8 prompts

Åbn en tom chat med Claude Code i dette projekt. Prøv 5 fraser, du faktisk bruger, og 3 lignende fraser, der ikke skal aktivere skillen:

Skal udløse:

- “Skriv en velkomstmail til den nye kunde Ivanov”
- “Introducér en ny deltager, der har købt program X”
- “Velkomstmail til en kunde fra Instagram”

Skal ikke udløse:

- “Send en kampagnemail til hele listen”
- “E-mailkampagne til nytårsferien”
- “Skriv en opfølgning til en kunde, der ikke har betalt”

Kontrollér for hver prompt, om skillen blev aktiveret. Hvis den aktiveres i de forkerte tilfælde, så gør beskrivelsen snævrere. Hvis den ikke aktiveres, hvor den skal, så gør udløserfraserne bredere.

### Trin 6. Iterér på beskrivelsen

Efter hver mislykket test skal du kun redigere beskrivelsen – rør ikke ved instruktionerne. Efter 2-3 iterationer begynder skillen at blive aktiveret pålideligt. Gem den, commit den, og brug den så hver dag.

Det sidste råd: Prøv ikke at gøre din første skill perfekt. Få den til at fungere. Finpudsningen kommer efter din femte eller tiende skill, når du begynder at se mønstre i dine formuleringer og i Claudes svar.

Vælg en tilbagevendende opgave fra din kalender for denne uge, sæt 30 minutter af, og følg de seks trin ovenfor. Så arbejder Claude efter din metode i stedet for at gætte.

<div class="section" role="doc-bibliography" aria-label="Kilder">

### Kilder

- [Extend Claude with skills - Claude Code Documentation](https://code.claude.com/docs/en/skills)
- [Agent Skills overview - Claude Platform Documentation](https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview)
- [Equipping agents for the real world with Agent Skills - Anthropic Engineering Blog](https://www.anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skills)
- [anthropics/skills - official repository with skill-creator](https://github.com/anthropics/skills)
- [Skill Creator SKILL.md - source of the trigger-evals methodology](https://github.com/anthropics/skills/blob/main/skills/skill-creator/SKILL.md)
- [vercel-labs/agent-skills - design guidelines](https://github.com/vercel-labs/agent-skills)
- [Agent Skills open standard - specification](https://agentskills.io)

</div>

Den fungerende opsætning er **AI-klon + Second Brain + Context Engineering**. Tre dele af én samlet metode.



Hvis du har brug for adgang til AI-modeller via Ailoot, kan du se nærmere på [Ailoot](https://ailoot.ai/).

## Spørgsmål og svar

### Gør flytning til ~/.claude/skills/ en skill inaktiv?

Nej. Mappen er installeret personligt scope og gør skillen tilgængelig på tværs af projekter. Behold ubrugte pakker i et arkiv uden for alle opdagelige skillsmapper, og installér kun aktuelt nødvendige skills.

### Hvordan tester jeg, om en beskrivelse aktiverer korrekt?

Prøv fem fraser, der skal aktivere skillen, og tre lignende forespørgsler, der ikke skal. Brug friske chats, registrér indlæst skill, og tilpas beskrivelsen ved overset reel forespørgsel eller forkert match.


## Ailoot · Virksomheden og dens projektportefølje

Ailoot bygger på solid driftserfaring, en stor kundebase, stabil service og løbende kontrol af KPI.

Virksomheden og dens projektportefølje: millioner af kunder; månedligt salg for milliarder.

Ailoot bruger denne driftserfaring til API-adgang til AI-funktioner i kundernes produkter, agenter, applikationer og automatiseringer.
