Spring til indhold

Claude Code Skills · Kapitel 6 af 9

5 Claude Code Skill-patterns med eksempler

De 5 arkitekturer der gør skills brugbare i rigtige workflows

Kristian Primdal

Kristian Primdal

18. marts 2026 · Opdateret 23. september 2026

Kort fortalt

Fem gennemprøvede mønstre til skills, der skal gøre mere end én ting: Sequential Workflow til trin-for-trin processer, Multi-MCP Coordination til flows på tværs af tjenester, Iterative Refinement til generer-validér-forbedr, Context-Aware Selection til skills der vælger tilgang efter situationen, og Domain-Specific Intelligence til ekspertviden indlejret i logik.

De kan kombineres. Anti-mønsteret er mega-skillen, der prøver at være alle fem på én gang.

Indhold

Du har bygget din første skill. Den gør én ting, og den gør det godt. Men de fleste opgaver i virkeligheden er ikke én ting. De er sekvenser, de kræver data fra flere systemer, og de kræver iteration.

De 5 patterns i dette kapitel kommer fra Anthropics officielle 33-siders guide til skills, kombineret med erfaringer fra praktikere der bruger skills dagligt i produktion. Hvert pattern løser et specifikt problem, og de kan kombineres.

For hvert pattern gennemgår vi: hvad det er, hvornår du bruger det, og et konkret eksempel du kan tilpasse.


1

Pattern 1

Sequential Workflow: trin-for-trin processer

Hvad det er

Det simpleste pattern og det du sandsynligvis bygger først. Skillen definerer en sekvens af trin som Claude udfører i rækkefølge. Hvert trin bygger på outputtet fra det foregående.

Hvornår du bruger det

Når du har en proces du kører på samme måde hver gang. Nøglen er “samme måde”. Hvis trinene varierer afhængigt af kontekst, er du bedre tjent med pattern 4 (Context-Aware Selection).

Eksempel: SEO-indholdsproduktion

---
name: seo-content-pipeline
description: >
  Runs the full SEO content pipeline: keyword research, outline,
  draft, optimization, and publishing preparation. Use when user
  mentions 'SEO', 'write article', 'blog post', 'skriv guide',
  'indholdsproduktion', or 'keyword'.
---

## Workflow

Kør disse trin i rækkefølge. Afslut ikke et trin før resultatet
er godkendt.

### Trin 1: Keyword Research
- Analysér det givne emne med tilgængelige søgedata
- Identificér primært keyword, sekundære keywords og relaterede søgninger
- Estimér søgevolumen og konkurrence
- Output: Keyword-rapport i markdown

### Trin 2: Outline
- Byg en artikelstruktur baseret på keyword-rapporten
- Inkludér H2/H3-hierarki, estimeret ordantal per sektion
- Identificér featured snippet-muligheder
- Output: Detaljeret outline med noter

### Trin 3: Første udkast
- Skriv artiklen baseret på outlinen
- Følg stilguiden i references/style-guide.md
- Inkludér interne links til eksisterende ordbogs-indgange
- Output: Komplet artikel i markdown

### Trin 4: SEO-optimering
- Tjek keyword-densitet (primært keyword i title, H1, intro, 2-3x i body)
- Tilføj meta-description (maks 155 tegn)
- Verificér alt-tekster og interne links
- Output: Optimeret artikel med meta-data

### Trin 5: Publiceringsklargøring
- Generér Hugo frontmatter
- Tjek at alle links virker
- Opret commit-besked
- Output: Publiceringsklar fil

## Gotchas
- Spring IKKE trin over, selv om brugeren beder om det
- Hvert trin skal godkendes eksplicit før næste starter
- Hvis keyword-research viser lav volume (<100/måned), rapportér
  det og foreslå alternativer før du fortsætter

Det her er det pattern jeg selv bruger mest. Min SEO-pipeline på kristianprimdal.dk er bygget præcis sådan, og det er den der har produceret de 263 ordbogs-indgange og guides du kan læse på sitet.


2

Pattern 2

Multi-MCP Coordination: flows på tværs af tjenester

Hvad det er

Skillen orkestrerer flere MCP-servere (Model Context Protocol) i én samlet workflow. I stedet for at du manuelt henter data fra GitHub, tjekker Linear og poster i Slack, gør skillen det hele i ét flow.

Hvornår du bruger det

Når en opgave kræver data eller handlinger fra mere end ét system. Det er her skills sparer mest tid, ikke fordi de enkelte trin er svære, men fordi kontekstskiftet mellem systemer koster.

Eksempel: Daglig standup-post

---
name: standup-post
description: >
  Generates and posts daily standup update by gathering data from
  GitHub, Linear, and Slack. Use when user mentions 'standup',
  'daily update', 'daglig status', 'morgenrapport', or
  'hvad lavede vi i går'.
---

## Hvad du skal gøre

Saml data fra tre kilder og generér en standup-post:

### Datahentning
1. **GitHub** (via GitHub MCP): Hent commits og merged PRs fra
   de sidste 24 timer
2. **Linear** (via Linear MCP): Hent tasks der er markeret som
   done/in-progress siden i går
3. **Slack** (via Slack MCP): Tjek #dev-kanalen for relevante
   tråde og beslutninger

### Formatering
Kombinér til en standup med tre sektioner:
- **Færdigt i går**: Baseret på GitHub + Linear
- **I gang i dag**: Baseret på Linear (in-progress tasks)
- **Blockers**: Baseret på Slack-tråde med uløste spørgsmål

### Posting
Post den færdige standup i #standup Slack-kanalen.

## Gotchas
- Hvis en MCP-server ikke er tilgængelig, nævn det i posten
  i stedet for at fejle
- Deduplikér: samme task kan optræde i både GitHub og Linear
- Hold formateringen kompatibel med Slack-markdown
- Inkludér IKKE kode-diffs — kun commit-beskeder

Det vigtige ved Multi-MCP-patternet er fejlhåndteringen. MCP-servere er eksterne afhængigheder der kan være nede. En god skill stopper ikke bare fordi én kilde ikke svarer. Den rapporterer hvad der mangler og fortsætter med det den har.


3

Pattern 3

Iterative Refinement: generer, validér, forbedr, gentag

Hvad det er

Skillen genererer et output, evaluerer det mod definerede kriterier, og forbedrer det i en loop indtil kvaliteten er god nok. Princippet er det samme som når du selv arbejder. Du laver et udkast, tjekker det, retter det, tjekker igen.

Hvornår du bruger det

Når kvaliteten af outputtet ikke kan vurderes på forhånd, og når “godt nok” kræver flere gennemgange. Typisk til kreativt output, UI-design, eller kompleks kode der skal opfylde mange krav samtidigt.

Dataen bag

OpenAI offentliggjorde i 2025 hvordan de bruger skills (de kalder det “instructions” og “codegen setups”) til at vedligeholde deres open source Agents SDK. Deres resultat: 45% flere PRs merget efter de implementerede Iterative Refinement-patternet på tværs af deres repositories.

Eksempel: Frontend-design med screenshot-validering

---
name: ui-design-iterate
description: >
  Generates frontend UI components and iteratively improves them
  by comparing screenshots against design specs. Use when user
  mentions 'design', 'UI', 'component', 'layout', 'frontend',
  'style', or asks to build visual elements.
---

## Workflow

### Generate
1. Byg komponenten baseret på brugerens beskrivelse
2. Følg design-systemet i references/design-tokens.md
3. Output: Funktionel komponent med styling

### Validate
1. Tag et screenshot af komponenten (via browser-værktøj)
2. Sammenlign med design-specifikation eller brugerens mockup
3. Evaluér på: layout, spacing, typografi, farver, responsivitet
4. Score 1-10 for hvert område

### Improve
1. Identificér de 2-3 vigtigste afvigelser
2. Ret dem i koden
3. Tag nyt screenshot
4. Gentag Validate

### Exit-kriterier
- Stop når alle scores er 7+ OG brugeren godkender
- Maks 4 iterationer — rapportér status hvis grænsen nås

## Gotchas
- Tag ALTID screenshot efter ændringer — stol ikke på at
  kode-ændringer ser rigtige ud uden visuel verifikation
- Fokusér på de største afvigelser først — finjustering
  kommer i senere iterationer
- Responsivitet: test på mindst 2 breakpoints (mobile + desktop)

Iterative Refinement udnytter noget modeller allerede er gode til: at sammenligne og evaluere. Claude er bedre til at vurdere “er det her godt?” end til at ramme perfekt i første forsøg.


4

Pattern 4

Context-Aware Selection: vælger tilgang baseret på situation

Hvad det er

Skillen analyserer konteksten og vælger den rigtige tilgang. I stedet for én fast sekvens, har den flere mulige veje og beslutter selv hvilken der passer.

Hvornår du bruger det

Når den samme type opgave kræver forskellige tilgange afhængigt af situationen. Kode-review af en database-migrering kræver andre tjek end review af en frontend-komponent. Et kundesvar til en teknisk forespørgsel kræver en anden tone end et svar til en fakturaklage.

Eksempel: Differentieret kode-review

---
name: smart-code-review
description: >
  Reviews code with context-aware rules based on file type and
  change category. Applies different checklists for migrations,
  API changes, frontend, and tests. Use when user mentions
  'review', 'PR', 'pull request', 'tjek kode', or 'code quality'.
---

## Kategorisering

Analysér de ændrede filer og klassificér reviewet:

### Hvis migration-filer (db/migrate/*, migrations/*)
- Tjek for irreversible ændringer (drop column, drop table)
- Verificér rollback-script eksisterer
- Tjek at indeksering er tilføjet for nye foreign keys
- Vurdér impact på eksisterende data

### Hvis API-endpoints (routes/*, controllers/*, api/*)
- Tjek authentication og authorization
- Verificér input-validering
- Tjek rate limiting
- Vurdér backward compatibility
- Tjek at API-dokumentation er opdateret

### Hvis frontend (components/*, pages/*, *.tsx, *.vue)
- Tjek accessibility (ARIA labels, keyboard navigation)
- Verificér responsivitet
- Tjek for hardcodede strenge (i18n)
- Vurdér performance (unødvendige re-renders)

### Hvis tests (test/*, spec/*, *.test.*)
- Tjek at edge cases er dækket
- Verificér at tests er isolerede (ingen afhængigheder mellem tests)
- Vurdér test-navngivning og læsbarhed

## For alle kategorier
- Tjek for credentials/secrets i koden
- Verificér error handling
- Vurdér navngivning og kode-konventioner
- Tjek for TODO/FIXME der burde være issues

## Gotchas
- Én PR kan indeholde filer fra flere kategorier — anvend
  alle relevante tjek
- Prioritér sikkerhedsrelaterede fund over stilmæssige
- Hvis PRen er over 500 linjer, foreslå at splitte den op

Geocodio, et geocoding-firma der bruger Laravel, kører præcis dette pattern med 4 skills der automatisk vælger den rette review-tilgang baseret på filtypen. De har kombineret det med git hooks der trigger reviewet automatisk ved PR-oprettelse, så ingen kode kan merges uden kontekst-bevidst review.


5

Pattern 5

Domain-Specific Intelligence: ekspertviden indlejret i logik

Hvad det er

Skillen indeholder domænespecifik viden som Claude ikke har fra sin træningsdata. Det er dit firmas interne viden: API-detaljer, edge cases, forretningsregler, navnekonventioner, pakket som instruktioner.

Hvornår du bruger det

Når Claude laver de samme fejl fordi den ikke kender dine interne systemer. Når onboarding af en ny medarbejder (eller en ny AI-agent) kræver viden der ikke står i offentlig dokumentation.

Tænk på det som gotchas-sektionen skaleret op. I stedet for en liste med ting der kan gå galt, har du et komplet vidensystem om dit domæne.

Eksempel: Intern faktureringsmotor

---
name: billing-expert
description: >
  Provides deep domain knowledge about our internal billing system
  including API quirks, edge cases, and common mistakes. Use when
  user works with code in billing/, mentions 'faktura', 'billing',
  'invoice', 'payment', 'subscription', or 'abonnement'.
---

## Vores billing-system

Vi bruger en custom billing-motor bygget oven på Stripe.
Kodebasen er i `billing/` mappen.

## Kritiske regler

1. **Aldrig slet en invoice-record.** Soft-delete altid.
   Bogføringsloven kræver det. Brug `invoice.archive()`,
   ikke `invoice.delete()`.

2. **VAT-beregning.** Altid via `VatCalculator.compute()`,
   aldrig manuelt. Den håndterer omvendt betalingspligt for
   EU-kunder, 0% for ikke-EU, og de 3 danske momssatser.

3. **Subscription lifecycle.** Vores subscriptions har 7
   states, ikke 3 som Stripes dokumentation viser:
   - trial → active → past_due → canceled
   - trial → active → paused → active (genaktivering)
   - trial → expired (aldrig konverteret)
   Tjek ALTID state-diagrammet i references/sub-states.svg.

4. **Currency.** Alt internt er i øre (cents), ikke kroner.
   Konvertér ved display, aldrig ved beregning. 10000 = 100 DKK.

5. **Proration.** Vores proration-logik er custom og matcher
   IKKE Stripes default. Se `billing/services/proration.py`.
   Rør ikke den fil uden at køre `test_proration_suite` først.

## Kendte fejl i Stripe-integrationen

- Webhook `invoice.payment_failed` kan komme EFTER
  `invoice.payment_succeeded` i race conditions. Tjek altid
  timestamp, ikke rækkefølge.
- Stripe sender duplicate webhooks ~2% af tiden. Alle handlers
  SKAL være idempotente.

## Gotchas
- Test-miljøet bruger Stripe test keys men vores staging har
  RIGTIGE subscription IDs — lav aldrig delete-operationer
  i staging
- `billing/legacy/` er deprecated kode. Importér ALDRIG fra
  den mappe. Den eksisterer kun fordi 12 kunder stadig kører
  på det gamle system.

Katie Parrott fra Every bruger Domain-Specific Intelligence-patternet til deres redaktionelle workflow. De har 6 skills der indeholder stilregler, faktakontrol-protokoller og formateringskrav specifikke for deres publikation. Nye skribenter (og AI-agenter) producerer indhold der matcher husets stil fra dag ét.


6

Kombination og anti-patterns

Kombination af patterns

De fleste skills i produktion bruger 2-3 patterns sammen. SEO-pipelinen fra pattern 1 bruger også Iterative Refinement (pattern 3) til at forbedre hvert udkast. Kode-reviewet fra pattern 4 bruger Domain-Specific Intelligence (pattern 5) til at kende de interne konventioner.

Her er de mest almindelige kombinationer:

KombinationEksempel
Sequential + IterativeIndholdsproduktion: skriv → evaluer → forbedr → publicer
Multi-MCP + SequentialRelease-noter: hent data fra 3 systemer → kompilér → formatér → post
Context-Aware + DomainKode-review: vælg regler baseret på filtype + interne konventioner
Sequential + DomainOnboarding: trin-for-trin setup med firmaviden i hvert trin

Anti-patternet: mega-skillen

Der er én fælde alle falder i: at bygge én skill der gør alt. En “dev-assistant” der reviewer kode, skriver tests, genererer dokumentation, håndterer deploys og laver kaffe.

Det virker ikke. Grunden er simpel: description-feltet kan ikke trigge på alt, og body-sektionen bliver så lang at den spiser al kontekst.

Hold skills fokuserede. Én skill per ansvarsområde. Hvis en workflow kræver flere ansvarsområder, brug Sequential Workflow-patternet til at kæde dem sammen.

OpenAI viser selv vej her. Deres Agents SDK-repositories bruger 8 Python-skills og 3 JavaScript-skills: 11 i alt, hver med et klart ansvar. Resultatet er de 45% flere PRs merget vi nævnte under Iterative Refinement.


7

Opsummering

De 5 patterns i overblik

#PatternBrug når…Nøgle
1Sequential WorkflowProcessen er den samme hver gangDefinér trin i rækkefølge, godkend hvert trin
2Multi-MCP CoordinationData kommer fra flere systemerHåndtér fejl fornuftigt, deduplikér
3Iterative RefinementKvalitet kræver flere gennemgangeDefinér exit-kriterier, sæt maks-iterationer
4Context-Aware SelectionSamme opgave, forskellige situationerDefinér kategorier og regler for hver
5Domain-Specific IntelligenceClaude mangler intern videnDokumentér regler, edge cases, gotchas

Start med ét pattern. Byg en skill der bruger det. Brug den i en uge. Tilføj et pattern mere når du har brug for det.

De mest effektive skills er ikke de mest komplekse. Det er dem der løser et reelt problem du har hver uge, med det mindst mulige antal patterns.


I næste kapitel ser vi på hvordan du organiserer og vedligeholder en voksende samling af skills, fra 5 til 60+ uden at miste overblikket.

Serien og begreberne

Dette kapitel er en del af guiden til Claude Code Skills. Se alle kapitler der, hvis du vil følge forløbet fra start.

Hjælp til jeres opgave

Vil I have hjælp til at gå fra idé til brug? Læs om min AI-rådgivning. Jeg hjælper jer med at vælge en opgave og bygge en løsning sammen med jer.

Ofte stillede spørgsmål

Hvilket skill-pattern skal jeg starte med?

Sequential Workflow. Det dækker de fleste tilbagevendende opgaver, hvor rækkefølgen betyder noget, og det er det letteste at fejlsøge, når noget går galt.

Kan man kombinere flere patterns i én skill?

Ja, og de fleste rigtige skills gør det. En sequential workflow med et iterativt valideringstrin er helt almindeligt. Grænsen går, når skillen ikke længere kan beskrives i én sætning.

Hvad er en mega-skill, og hvorfor er det et problem?

En mega-skill er en enkelt skill der forsøger at dække alt. Den bliver upålidelig, fordi description-feltet ikke kan beskrive den præcist nok til at Claude ved hvornår den skal bruges, og fordi konteksten fyldes med instruktioner der ikke gælder den aktuelle opgave.

Hvad er Multi-MCP Coordination?

Et mønster hvor en skill henter og skriver data på tværs af flere tjenester i samme flow, for eksempel læser en opgave i et projektstyringsværktøj, henter tal fra et regnskabssystem og lægger resultatet i et dokument. Skillen styrer rækkefølgen og hvad der sker når et af systemerne svarer uventet.