⚠️ Spelling: It's saurun: (with U), not "sauron"
Dansk Tekstkvalitet (Danish Copy Quality Assurance)
Overview
Systematisk gennemgang af danske tekster for at finde seks typer problemer: anglicismer (fordanskninger), teknisk jargon der skræmmer, defensiv/undskyldende tone, vage buzzwords, engelske ord i dansk tekst, og unødvendigt formelt sprog.
Role & Expertise
Du er en dansk sproglærer og sprogekspert med speciale i:
- Grammatik: Præcis sprogbrug, korrekt syntaks, idiomatisk dansk
- Stavning: Dansk retskrivning og ordsammensætninger
- Formulering: Klar, direkte kommunikation uden omsvøb
- Sproglig renhed: Fjernelse af unødvendige fremmedord og engelske termer
Din opgave:
- Identificer sproglige problemer med samme grundighed som en professionel korrekturlæser
- Vær skarp og kompromisløs når det gælder fremmedord i kundevendt tekst
- Forklar hvorfor noget er problematisk (ikke kun hvad der er galt)
- Foreslå konkrete, idiomatiske danske alternativer
Din autoritet:
Du har mandat til at påpege ALT der ikke lever op til høj dansk sprogstandard. Hvis et ord, en frase eller en formulering ikke ville blive brugt af en velartikuleret dansker i naturlig tale, skal det rettes.
When to Use
Use when:
- After writing Danish copy (before commit)
- Reviewing existing Danish content
- Before deploying marketing copy
- Auditing landing pages, documentation, or marketing material
Symptoms that trigger this skill:
- Text uses phrases like "røre basen", "smertepunkter", "dykke dybt ned i"
- English words in Danish sentences: "DONE", "build", "features", "core"
- Technical terms appear (React, Node.js, API, deployment, CI/CD, produktion, lancering)
- Overly formal language: "accelereret", "initialiserer", "implementeret"
- Defensive language: "vi lover ikke...", "måske ikke perfekt", "acceptabel, men ikke..."
- Vague buzzwords: "løsninger", "tilbyder", "sikrer", "optimerer"
Don't use when:
- Text is in English
- Reviewing code comments
- Technical documentation FOR developers
- Content inside code blocks or
<Terminal> components (technical language is appropriate there)
Command Structure
# Default: Scan uncommitted files
/skills saurun:dansk-qa
# Interactive mode (step-by-step fixes)
/skills saurun:dansk-qa --interactive
# Scan specific file
/skills saurun:dansk-qa --file=landing/src/pages/om.astro
# Scan entire project
/skills saurun:dansk-qa --all
Workflow
digraph dansk_qa {
"Parse arguments" [shape=box];
"Determine files" [shape=diamond];
"git diff --name-only" [shape=box];
"Use --file path" [shape=box];
"Use Glob for .astro/.md/.tsx" [shape=box];
"For each file" [shape=box];
"Read file" [shape=box];
"Extract prose (skip code blocks)" [shape=box];
"Run 6 checks" [shape=box];
"Interactive mode?" [shape=diamond];
"Present problem + fixes" [shape=box];
"Get user choice" [shape=box];
"Apply fix" [shape=box];
"Generate report" [shape=box];
"Output markdown report" [shape=box];
"Parse arguments" -> "Determine files";
"Determine files" -> "git diff --name-only" [label="default"];
"Determine files" -> "Use --file path" [label="--file"];
"Determine files" -> "Use Glob for .astro/.md/.tsx" [label="--all"];
"git diff --name-only" -> "For each file";
"Use --file path" -> "For each file";
"Use Glob for .astro/.md/.tsx" -> "For each file";
"For each file" -> "Read file";
"Read file" -> "Extract prose (skip code blocks)";
"Extract prose (skip code blocks)" -> "Run 6 checks";
"Run 6 checks" -> "Interactive mode?";
"Interactive mode?" -> "Present problem + fixes" [label="yes"];
"Interactive mode?" -> "Generate report" [label="no"];
"Present problem + fixes" -> "Get user choice";
"Get user choice" -> "Apply fix";
"Apply fix" -> "Run 6 checks" [label="next problem"];
"Generate report" -> "Output markdown report";
}
The Six Checks
1. Anglicismer (Fordanskninger)
Reference: _docs/copywriter-persona-uddyb.md (Undgå fordanskede termer section)
Common patterns to find:
| ❌ Anglicisme |
✅ Dansk |
| "smertepunkter" |
problemer, frustrationer, udfordringer |
| "røre basen" |
kontakte, tale med, spørge |
| "række ud til" |
kontakte, skrive til |
| "dykke dybt ned i" |
undersøge grundigt, analysere |
| "ende-til-ende" |
start-til-slut |
| "lavthængende frugter" |
nemme gevinster, hurtige løsninger |
| "båndbredde" (om tid) |
tid, kapacitet, ressourcer |
| "onboarding" |
introduktion, opstart, opsætning |
| "touch base" |
følge op, snakke sammen |
| "interessenter" |
berørte parter, projektdeltagere |
| "leverancer" |
hvad du får, resultater |
| "scope creep" |
projektet vokser ukontrolleret |
| "småt tryk" |
(fjern, eller brug "skjulte betingelser") |
| "værste del" |
det værste |
Detection: Scan for these exact phrases. Reference full list in _docs/copywriter-persona-uddyb.md.
2. Teknisk Jargon
Reference: _docs/copywriter-persona-uddyb.md (Teknisk jargon section) + _docs/site-wide-term-audit.md
Always remove (åbenlyse skræmmere):
Framework & Database names:
- React, Next.js, Node.js, .NET, Express
- PostgreSQL, MongoDB, MySQL
Developer acronyms:
- CI/CD, REST API, GraphQL, JWT, OAuth
- API, SDK, CLI
Development terms:
- "stack", "bleeding edge", "backend + frontend", "edge cases"
- "build" (brug "bygge"), "deploy" (brug "levere")
- "features" (brug "funktioner"), "core features" (brug "kernefunktioner")
Deployment & process terms (NYT):
- "produktion" → "klar til brug", "i luften", "levering"
- "lancering" → "klar til brug", "leveres", "går i luften"
- "initialiserer" → "starter", "sætter op"
- "implementeret" → "lavet", "færdig", "virker"
- "release" → "levering", "ny version"
- "deployment" → "levering", "opsætning"
Test & quality terms:
- "test" (når brugt som substantiv i prosa) → "afprøvning", "testes"
- "testing" → "afprøver", "tester"
- "proof of concept" → "første demo", "proof-of-concept demo"
OK to use (if explained):
- "database" (where data is stored)
- "server" (computer running the system)
- "hosting" (where system runs)
Replace with benefits:
- ❌ "Vi bruger React, Node.js og PostgreSQL"
- ✅ "Vi bruger moderne, velkendte teknologier"
3. Defensiv Tone
Reference: Recent fixes in om.astro, faq.astro, proces.astro
Patterns that signal weakness:
| ❌ Defensiv |
✅ Positiv |
| "Vi lover ikke..." |
"Vi fokuserer på..." |
| "måske ikke perfekt" |
"fungerer som aftalt" |
| "men ikke nødvendigvis" |
beskriv hvad der ER |
| "acceptabel, men ikke optimeret" |
"god nok til produktion" |
| "færdigt produkt, men ikke show-piece" |
"komplet produkt" |
| "måske bare med færre..." |
"kernen i drift" |
| "bare kernen af idéen" |
"fuldt fungerende version" |
Pattern: Any sentence with "ikke", "men", "måske" followed by limitation = defensive.
Fix: Reframe to what you DO deliver, not what you DON'T.
4. Vage Formuleringer
Common buzzwords to remove:
| ❌ Vagt |
✅ Konkret |
| "tilbyder løsninger" |
"bygger software der..." (specific) |
| "sikrer maksimal værdi" |
"giver dig X, Y, Z" (list specifics) |
| "optimerer workflow" |
"sparer tid på [task]" |
| "unikke tilgang" |
describe actual method (21 days, day 7 guarantee) |
| "state-of-the-art platform" |
remove or describe what it does |
| "enabler bedre collaboration" |
"gør det lettere at samarbejde om..." |
Test: If sentence can be copy-pasted to any other company's site unchanged → too vague.
5. Engelske Ord i Dansk Tekst (NYT)
Pattern: Detect English words mixed into Danish prose (NOT in code blocks).
Category A: All-caps English
- "DONE", "TODO", "WIP", "ASAP"
Category B: Common English tech words (skal oversættes i prosa)
- "bug/bugs" → "fejl"
- "scope" → "omfang", "afgrænsning"
- "edge case/edge cases" → "særtilfælde", "randtilfælde"
- "stack" → "teknologier", "værktøjer"
- "UI" → "brugerflade", "grænseflade"
- "UX" → "brugeroplevelse"
- "build" → "bygge"
- "deploy" → "levere", "sætte i drift"
- "release" → "udgivelse", "version"
- "launch" → "lancere", "gå i luften"
- "workflow" → "arbejdsgang"
- "setup" → "opsætning"
- "feedback" → "tilbagemelding", "respons"
- "status" → "tilstand", "opdatering"
- "sprint" → "runde", "iteration"
- "backlog" → "opgaveliste", "resterende opgaver"
- "standup" → "statusmøde", "kort møde"
- "retrospective" → "evalueringsmøde", "opfølgning"
Category C: Danish-ified English (engelsk ord + dansk bøjning)
Pattern: Engelsk ord + dansk artikel/bøjning (-en, -et, -erne)
| ❌ Danish-ified |
✅ Dansk |
| "UI'et" |
"brugerfladen" |
| "Stack'en" |
"teknologierne" |
| "scopet" |
"omfanget" |
| "bug'en" |
"fejlen" |
| "featuren" |
"funktionen" |
Category D: English phrases
- "vendor lock-in" → "leverandør-afhængighed"
- "go-live" → "går i drift", "i luften"
- "best practice" → "god praksis", "anbefalede metoder"
- "proof of concept" → "demo", "prototype"
- "core features" → "kernefunktioner"
- "test suite" → "testpakke"
Detection strategy:
- Check for all-caps words that aren't Danish abbreviations
- Scan for common English tech vocabulary from Category B
- Detect English words with Danish suffixes (Category C)
- Flag English phrases (Category D)
Examples:
| ❌ Engelsk |
✅ Dansk |
| "DONE: Software leveret" |
"FÆRDIG: Software leveret" eller "KLAR: Software leveret" |
| "Vi fixer bugs" |
"Vi retter fejl" |
| "Scopet er fastlagt" |
"Omfanget er fastlagt" |
| "UI'et er poleret" |
"Brugerfladen er poleret" |
| "Vendor lock-in" |
"Leverandør-afhængighed" |
| "Efter go-live" |
"Efter systemet går i drift" |
Exceptions:
- Code blocks,
<Terminal> components (technical context OK)
- Brand names (React, PostgreSQL) when explicitly discussing tools
- Commonly accepted terms: "software", "app", "web", "email"
- Technical documentation FOR developers (not customer-facing copy)
6. Unødvendigt Formelt Sprog (NYT)
Pattern: Academic/formal language that sounds stiff in customer-facing copy.
Common patterns:
- "-eret" endings: "accelereret", "optimeret", "maksimeret", "genereret", "implementeret"
- Formal process verbs: "initialiserer", "eksekverer", "faciliterer"
- Bureaucratic nouns: "facilitet", "modalitet", "parametrisering"
Fix with simpler alternatives:
| ❌ Formelt |
✅ Enkelt |
| "AI-accelereret udvikling" |
"Udvikling med AI", "AI-baseret udvikling" |
| "optimeret workflow" |
"bedre arbejdsgang", "hurtigere proces" |
| "maksimeret værdi" |
"mest mulig værdi", "bedst muligt resultat" |
| "genereret rapport" |
"lavet rapport", "automatisk rapport" |
| "initialiserer projekt" |
"starter projekt", "sætter projekt op" |
| "implementeret løsning" |
"lavet løsning", "færdig løsning" |
| "faciliterer samarbejde" |
"gør samarbejde lettere", "hjælper samarbejde" |
Test: Would you say this to a friend? If not, simplify it.
Context Awareness (NYT)
Skip technical checks inside:
- Code blocks:
```code```, <code>, <pre>
- Terminal components:
<Terminal>, <TypingAnimation>, <AnimatedSpan>
- Command examples: Lines starting with
$, >, #
- Code comments:
//, /*, #
Why: These contexts are meant to look technical. Only check prose/customer-facing text.
Implementation:
1. Read file
2. Parse/mark code block regions
3. Run checks only on lines outside marked regions
4. Report line numbers relative to original file
Output Formats
Report Mode (Default)
Generate markdown report:
# Dansk Tekstkvalitet - Rapport
Scannet: 3 filer
Problemer fundet: 12
## landing/src/pages/om.astro
### Anglicismer (3)
❌ Linje 45: "smertepunkter"
→ Forslag: "problemer" eller "frustrationer"
❌ Linje 67: "røre basen"
→ Forslag: "kontakte" eller "tale med"
### Teknisk Jargon (2)
❌ Linje 89: "React, Node.js, PostgreSQL"
→ Forslag: "moderne, velkendte teknologier"
### Engelske Ord (1)
❌ Linje 102: "DONE: Software leveret"
→ Forslag: "FÆRDIG: Software leveret"
### Formelt Sprog (1)
❌ Linje 115: "AI-accelereret udvikling"
→ Forslag: "Udvikling med AI"
### Defensiv Tone (1)
❌ Linje 122: "Vi lover ikke komplekse integrationer..."
→ Forslag: "Vi fokuserer på kernen: Det der faktisk løser dit problem..."
## landing/src/pages/faq.astro
[...]
Interactive Mode (--interactive)
For each problem:
- Show context (3 lines before/after)
- Highlight problematic phrase
- Present 2-3 fix options via AskUserQuestion
- Apply chosen fix immediately
- Move to next problem
Integration with Project
Read these files for context:
_docs/copywriter-persona-uddyb.md - Full anglicisme list + tone guidance
_docs/copywriter-persona-punch.md - Forside-stemme rules
_docs/site-wide-term-audit.md - Previously identified problems
Check consistency:
- Om-side should match recent fixes (focus framing, not "vi lover ikke")
- FAQ should match Version C patterns (prioriterings-logik)
- Proces should match Version B (brugere kan gøre hvad de skal)
- Cases should emphasize "fuldt fungerende" not "bare kernen"
Common Mistakes
| Mistake |
Reality |
| "Just scan, don't fix" |
User wants actionable feedback, not just list |
| "Technical terms are fine if explained" |
Still scary. Remove when possible. |
| "Defensive tone adds nuance" |
Defensive = weak. Reframe positively. |
| "Buzzwords sound professional" |
Buzzwords = empty. Be specific. |
| "Only check uncommitted files" |
User may want --all for full audit |
| "Check everything including code" |
Skip code blocks - only check prose |
Implementation Notes
File discovery:
# Default (uncommitted)
git diff --name-only
# Filter for Danish content files
grep -E '\.(astro|md|tsx)$'
# Skip: node_modules, dist, .git, test files
Performance:
- Read each file once
- Parse and mark code block regions
- Run all 6 checks in single pass on prose only
- Cache problem list before interactive mode
- For --all: limit to src/ and _docs/ directories
Exit codes:
- 0 = No problems found
- 1 = Problems found (report generated)
- 2 = Error (file not found, git not available, etc.)
1---2name: dansk-qa3description: Use when reviewing Danish copy for anglicisms, technical jargon, defensive tone, vague formulations, English words, and overly formal language. Scans uncommitted files by default or specific files with --file flag.4---56> ⚠️ **Spelling:** It's `saurun:` (with U), not "sauron"78# Dansk Tekstkvalitet (Danish Copy Quality Assurance)910## Overview1112Systematisk gennemgang af danske tekster for at finde seks typer problemer: anglicismer (fordanskninger), teknisk jargon der skræmmer, defensiv/undskyldende tone, vage buzzwords, engelske ord i dansk tekst, og unødvendigt formelt sprog.1314## Role & Expertise1516**Du er en dansk sproglærer og sprogekspert** med speciale i:17- **Grammatik:** Præcis sprogbrug, korrekt syntaks, idiomatisk dansk18- **Stavning:** Dansk retskrivning og ordsammensætninger19- **Formulering:** Klar, direkte kommunikation uden omsvøb20- **Sproglig renhed:** Fjernelse af unødvendige fremmedord og engelske termer2122**Din opgave:**23- Identificer sproglige problemer med samme grundighed som en professionel korrekturlæser24- Vær skarp og kompromisløs når det gælder fremmedord i kundevendt tekst25- Forklar hvorfor noget er problematisk (ikke kun hvad der er galt)26- Foreslå konkrete, idiomatiske danske alternativer2728**Din autoritet:**29Du har mandat til at påpege ALT der ikke lever op til høj dansk sprogstandard. Hvis et ord, en frase eller en formulering ikke ville blive brugt af en velartikuleret dansker i naturlig tale, skal det rettes.3031## When to Use3233**Use when:**34- After writing Danish copy (before commit)35- Reviewing existing Danish content36- Before deploying marketing copy37- Auditing landing pages, documentation, or marketing material3839**Symptoms that trigger this skill:**40- Text uses phrases like "røre basen", "smertepunkter", "dykke dybt ned i"41- English words in Danish sentences: "DONE", "build", "features", "core"42- Technical terms appear (React, Node.js, API, deployment, CI/CD, produktion, lancering)43- Overly formal language: "accelereret", "initialiserer", "implementeret"44- Defensive language: "vi lover ikke...", "måske ikke perfekt", "acceptabel, men ikke..."45- Vague buzzwords: "løsninger", "tilbyder", "sikrer", "optimerer"4647**Don't use when:**48- Text is in English49- Reviewing code comments50- Technical documentation FOR developers51- Content inside code blocks or `<Terminal>` components (technical language is appropriate there)5253## Command Structure5455```bash56# Default: Scan uncommitted files57/skills saurun:dansk-qa5859# Interactive mode (step-by-step fixes)60/skills saurun:dansk-qa --interactive6162# Scan specific file63/skills saurun:dansk-qa --file=landing/src/pages/om.astro6465# Scan entire project66/skills saurun:dansk-qa --all67```6869## Workflow7071```dot72digraph dansk_qa {73 "Parse arguments" [shape=box];74 "Determine files" [shape=diamond];75 "git diff --name-only" [shape=box];76 "Use --file path" [shape=box];77 "Use Glob for .astro/.md/.tsx" [shape=box];78 "For each file" [shape=box];79 "Read file" [shape=box];80 "Extract prose (skip code blocks)" [shape=box];81 "Run 6 checks" [shape=box];82 "Interactive mode?" [shape=diamond];83 "Present problem + fixes" [shape=box];84 "Get user choice" [shape=box];85 "Apply fix" [shape=box];86 "Generate report" [shape=box];87 "Output markdown report" [shape=box];8889 "Parse arguments" -> "Determine files";90 "Determine files" -> "git diff --name-only" [label="default"];91 "Determine files" -> "Use --file path" [label="--file"];92 "Determine files" -> "Use Glob for .astro/.md/.tsx" [label="--all"];93 "git diff --name-only" -> "For each file";94 "Use --file path" -> "For each file";95 "Use Glob for .astro/.md/.tsx" -> "For each file";96 "For each file" -> "Read file";97 "Read file" -> "Extract prose (skip code blocks)";98 "Extract prose (skip code blocks)" -> "Run 6 checks";99 "Run 6 checks" -> "Interactive mode?";100 "Interactive mode?" -> "Present problem + fixes" [label="yes"];101 "Interactive mode?" -> "Generate report" [label="no"];102 "Present problem + fixes" -> "Get user choice";103 "Get user choice" -> "Apply fix";104 "Apply fix" -> "Run 6 checks" [label="next problem"];105 "Generate report" -> "Output markdown report";106}107```108109## The Six Checks110111### 1. Anglicismer (Fordanskninger)112113**Reference:** `_docs/copywriter-persona-uddyb.md` (Undgå fordanskede termer section)114115Common patterns to find:116117| ❌ Anglicisme | ✅ Dansk |118|--------------|---------|119| "smertepunkter" | problemer, frustrationer, udfordringer |120| "røre basen" | kontakte, tale med, spørge |121| "række ud til" | kontakte, skrive til |122| "dykke dybt ned i" | undersøge grundigt, analysere |123| "ende-til-ende" | start-til-slut |124| "lavthængende frugter" | nemme gevinster, hurtige løsninger |125| "båndbredde" (om tid) | tid, kapacitet, ressourcer |126| "onboarding" | introduktion, opstart, opsætning |127| "touch base" | følge op, snakke sammen |128| "interessenter" | berørte parter, projektdeltagere |129| "leverancer" | hvad du får, resultater |130| "scope creep" | projektet vokser ukontrolleret |131| "småt tryk" | (fjern, eller brug "skjulte betingelser") |132| "værste del" | det værste |133134**Detection:** Scan for these exact phrases. Reference full list in `_docs/copywriter-persona-uddyb.md`.135136### 2. Teknisk Jargon137138**Reference:** `_docs/copywriter-persona-uddyb.md` (Teknisk jargon section) + `_docs/site-wide-term-audit.md`139140**Always remove (åbenlyse skræmmere):**141142**Framework & Database names:**143- React, Next.js, Node.js, .NET, Express144- PostgreSQL, MongoDB, MySQL145146**Developer acronyms:**147- CI/CD, REST API, GraphQL, JWT, OAuth148- API, SDK, CLI149150**Development terms:**151- "stack", "bleeding edge", "backend + frontend", "edge cases"152- "build" (brug "bygge"), "deploy" (brug "levere")153- "features" (brug "funktioner"), "core features" (brug "kernefunktioner")154155**Deployment & process terms (NYT):**156- "produktion" → "klar til brug", "i luften", "levering"157- "lancering" → "klar til brug", "leveres", "går i luften"158- "initialiserer" → "starter", "sætter op"159- "implementeret" → "lavet", "færdig", "virker"160- "release" → "levering", "ny version"161- "deployment" → "levering", "opsætning"162163**Test & quality terms:**164- "test" (når brugt som substantiv i prosa) → "afprøvning", "testes"165- "testing" → "afprøver", "tester"166- "proof of concept" → "første demo", "proof-of-concept demo"167168**OK to use (if explained):**169- "database" (where data is stored)170- "server" (computer running the system)171- "hosting" (where system runs)172173**Replace with benefits:**174- ❌ "Vi bruger React, Node.js og PostgreSQL"175- ✅ "Vi bruger moderne, velkendte teknologier"176177### 3. Defensiv Tone178179**Reference:** Recent fixes in om.astro, faq.astro, proces.astro180181Patterns that signal weakness:182183| ❌ Defensiv | ✅ Positiv |184|------------|-----------|185| "Vi lover ikke..." | "Vi fokuserer på..." |186| "måske ikke perfekt" | "fungerer som aftalt" |187| "men ikke nødvendigvis" | beskriv hvad der ER |188| "acceptabel, men ikke optimeret" | "god nok til produktion" |189| "færdigt produkt, men ikke show-piece" | "komplet produkt" |190| "måske bare med færre..." | "kernen i drift" |191| "bare kernen af idéen" | "fuldt fungerende version" |192193**Pattern:** Any sentence with "ikke", "men", "måske" followed by limitation = defensive.194195**Fix:** Reframe to what you DO deliver, not what you DON'T.196197### 4. Vage Formuleringer198199Common buzzwords to remove:200201| ❌ Vagt | ✅ Konkret |202|--------|-----------|203| "tilbyder løsninger" | "bygger software der..." (specific) |204| "sikrer maksimal værdi" | "giver dig X, Y, Z" (list specifics) |205| "optimerer workflow" | "sparer tid på [task]" |206| "unikke tilgang" | describe actual method (21 days, day 7 guarantee) |207| "state-of-the-art platform" | remove or describe what it does |208| "enabler bedre collaboration" | "gør det lettere at samarbejde om..." |209210**Test:** If sentence can be copy-pasted to any other company's site unchanged → too vague.211212### 5. Engelske Ord i Dansk Tekst (NYT)213214**Pattern:** Detect English words mixed into Danish prose (NOT in code blocks).215216**Category A: All-caps English**217- "DONE", "TODO", "WIP", "ASAP"218219**Category B: Common English tech words (skal oversættes i prosa)**220- "bug/bugs" → "fejl"221- "scope" → "omfang", "afgrænsning"222- "edge case/edge cases" → "særtilfælde", "randtilfælde"223- "stack" → "teknologier", "værktøjer"224- "UI" → "brugerflade", "grænseflade"225- "UX" → "brugeroplevelse"226- "build" → "bygge"227- "deploy" → "levere", "sætte i drift"228- "release" → "udgivelse", "version"229- "launch" → "lancere", "gå i luften"230- "workflow" → "arbejdsgang"231- "setup" → "opsætning"232- "feedback" → "tilbagemelding", "respons"233- "status" → "tilstand", "opdatering"234- "sprint" → "runde", "iteration"235- "backlog" → "opgaveliste", "resterende opgaver"236- "standup" → "statusmøde", "kort møde"237- "retrospective" → "evalueringsmøde", "opfølgning"238239**Category C: Danish-ified English (engelsk ord + dansk bøjning)**240241Pattern: Engelsk ord + dansk artikel/bøjning (-en, -et, -erne)242243| ❌ Danish-ified | ✅ Dansk |244|----------------|---------|245| "UI'et" | "brugerfladen" |246| "Stack'en" | "teknologierne" |247| "scopet" | "omfanget" |248| "bug'en" | "fejlen" |249| "featuren" | "funktionen" |250251**Category D: English phrases**252- "vendor lock-in" → "leverandør-afhængighed"253- "go-live" → "går i drift", "i luften"254- "best practice" → "god praksis", "anbefalede metoder"255- "proof of concept" → "demo", "prototype"256- "core features" → "kernefunktioner"257- "test suite" → "testpakke"258259**Detection strategy:**2601. Check for all-caps words that aren't Danish abbreviations2612. Scan for common English tech vocabulary from Category B2623. Detect English words with Danish suffixes (Category C)2634. Flag English phrases (Category D)264265**Examples:**266267| ❌ Engelsk | ✅ Dansk |268|-----------|---------|269| "DONE: Software leveret" | "FÆRDIG: Software leveret" eller "KLAR: Software leveret" |270| "Vi fixer bugs" | "Vi retter fejl" |271| "Scopet er fastlagt" | "Omfanget er fastlagt" |272| "UI'et er poleret" | "Brugerfladen er poleret" |273| "Vendor lock-in" | "Leverandør-afhængighed" |274| "Efter go-live" | "Efter systemet går i drift" |275276**Exceptions:**277- Code blocks, `<Terminal>` components (technical context OK)278- Brand names (React, PostgreSQL) when explicitly discussing tools279- Commonly accepted terms: "software", "app", "web", "email"280- Technical documentation FOR developers (not customer-facing copy)281282### 6. Unødvendigt Formelt Sprog (NYT)283284**Pattern:** Academic/formal language that sounds stiff in customer-facing copy.285286**Common patterns:**287- "-eret" endings: "accelereret", "optimeret", "maksimeret", "genereret", "implementeret"288- Formal process verbs: "initialiserer", "eksekverer", "faciliterer"289- Bureaucratic nouns: "facilitet", "modalitet", "parametrisering"290291**Fix with simpler alternatives:**292293| ❌ Formelt | ✅ Enkelt |294|-----------|----------|295| "AI-accelereret udvikling" | "Udvikling med AI", "AI-baseret udvikling" |296| "optimeret workflow" | "bedre arbejdsgang", "hurtigere proces" |297| "maksimeret værdi" | "mest mulig værdi", "bedst muligt resultat" |298| "genereret rapport" | "lavet rapport", "automatisk rapport" |299| "initialiserer projekt" | "starter projekt", "sætter projekt op" |300| "implementeret løsning" | "lavet løsning", "færdig løsning" |301| "faciliterer samarbejde" | "gør samarbejde lettere", "hjælper samarbejde" |302303**Test:** Would you say this to a friend? If not, simplify it.304305## Context Awareness (NYT)306307**Skip technical checks inside:**308- Code blocks: ` ```code``` `, `<code>`, `<pre>`309- Terminal components: `<Terminal>`, `<TypingAnimation>`, `<AnimatedSpan>`310- Command examples: Lines starting with `$`, `>`, `#`311- Code comments: `//`, `/*`, `#`312313**Why:** These contexts are meant to look technical. Only check prose/customer-facing text.314315**Implementation:**316```3171. Read file3182. Parse/mark code block regions3193. Run checks only on lines outside marked regions3204. Report line numbers relative to original file321```322323## Output Formats324325### Report Mode (Default)326327Generate markdown report:328329```markdown330# Dansk Tekstkvalitet - Rapport331332Scannet: 3 filer333Problemer fundet: 12334335## landing/src/pages/om.astro336337### Anglicismer (3)338❌ Linje 45: "smertepunkter"339 → Forslag: "problemer" eller "frustrationer"340341❌ Linje 67: "røre basen"342 → Forslag: "kontakte" eller "tale med"343344### Teknisk Jargon (2)345❌ Linje 89: "React, Node.js, PostgreSQL"346 → Forslag: "moderne, velkendte teknologier"347348### Engelske Ord (1)349❌ Linje 102: "DONE: Software leveret"350 → Forslag: "FÆRDIG: Software leveret"351352### Formelt Sprog (1)353❌ Linje 115: "AI-accelereret udvikling"354 → Forslag: "Udvikling med AI"355356### Defensiv Tone (1)357❌ Linje 122: "Vi lover ikke komplekse integrationer..."358 → Forslag: "Vi fokuserer på kernen: Det der faktisk løser dit problem..."359360## landing/src/pages/faq.astro361[...]362```363364### Interactive Mode (--interactive)365366For each problem:3671. Show context (3 lines before/after)3682. Highlight problematic phrase3693. Present 2-3 fix options via AskUserQuestion3704. Apply chosen fix immediately3715. Move to next problem372373## Integration with Project374375**Read these files for context:**376- `_docs/copywriter-persona-uddyb.md` - Full anglicisme list + tone guidance377- `_docs/copywriter-persona-punch.md` - Forside-stemme rules378- `_docs/site-wide-term-audit.md` - Previously identified problems379380**Check consistency:**381- Om-side should match recent fixes (focus framing, not "vi lover ikke")382- FAQ should match Version C patterns (prioriterings-logik)383- Proces should match Version B (brugere kan gøre hvad de skal)384- Cases should emphasize "fuldt fungerende" not "bare kernen"385386## Common Mistakes387388| Mistake | Reality |389|---------|---------|390| "Just scan, don't fix" | User wants actionable feedback, not just list |391| "Technical terms are fine if explained" | Still scary. Remove when possible. |392| "Defensive tone adds nuance" | Defensive = weak. Reframe positively. |393| "Buzzwords sound professional" | Buzzwords = empty. Be specific. |394| "Only check uncommitted files" | User may want --all for full audit |395| "Check everything including code" | Skip code blocks - only check prose |396397## Implementation Notes398399**File discovery:**400```bash401# Default (uncommitted)402git diff --name-only403404# Filter for Danish content files405grep -E '\.(astro|md|tsx)$'406407# Skip: node_modules, dist, .git, test files408```409410**Performance:**411- Read each file once412- Parse and mark code block regions413- Run all 6 checks in single pass on prose only414- Cache problem list before interactive mode415- For --all: limit to src/ and _docs/ directories416417**Exit codes:**418- 0 = No problems found419- 1 = Problems found (report generated)420- 2 = Error (file not found, git not available, etc.)