Blog

Én instruktionsfil til Claude Code, Codex og Cursor i 2026

Markdown

Én fælles kilde til Claude Code, Codex og Cursor i 2026: hvornår Claude Code selv læser AGENTS.md, import af @AGENTS.md i CLAUDE.md, et symbolsk link og /init.

Læs hele artiklen

Se Ailoot-dokumentationen for oplysninger om tjenesten.

Hvad ændrer sig, når du bruger Claude Code, Codex og Cursor sammen?

Det vigtigste

I 2026 består en typisk vibe-koders opsætning ikke af ét værktøj, men af 3–5. Claude Code som hovedværktøj, Codex til lange autonome opgaver og Cursor til hurtige redigeringer i IDE'en. Hvert værktøj har sin egen instruktionsfil: CLAUDE.md, AGENTS.md, .cursorrules. Hvis du holder dem synkroniseret manuelt, redigerer du én linje fem steder, glemmer at opdatere Cursor, og en uge senere giver Claude og Codex forskellige resultater på den samme prompt.

I eksemplet, der beskrives, er Claude Code hovedværktøjet, mens Codex og Cursor bruges til bestemte opgaver. Min CLAUDE.md har omkring 250 linjer instruktioner: hvad der skal læses og i hvilken rækkefølge, hvad der ikke må røres, hvilke kommandoer der skal bruges til udrulning, og reglerne for commit-formatering. Da jeg først prøvede Codex CLI på projektet, kendte det ingen af reglerne: det kørte git push --force, snusede rundt i .env og omdøbte filer skødesløst.

Jeg kopierede først CLAUDE.md til AGENTS.md manuelt. To uger senere opdagede jeg, at projektet allerede havde fire versioner af den samme instruktion: i CLAUDE.md, AGENTS.md, .cursorrules og .windsurf/rules/. De var alle lidt forskellige. Det er ikke et Claude- eller Cursor-problem; det er den grundlæggende fælde i ethvert system med flere kilder til sandhed. Jeg behandler problemet mere indgående i guiden til arbejde med flere agenter.

I juni 2026 gav Anthropics dokumentation om Claude Code-hukommelse ét svar: en fælles fil plus en import. Siden september 2026 læser Claude Code selv AGENTS.md, hvis projektet ikke har en CLAUDE.md, og en import er nødvendig, når du har regler, der gælder specifikt for Claude. Nedenfor forklarer jeg, hvornår én enkelt AGENTS.md er nok, hvordan du konfigurerer en import, og hvordan du adskiller fælles regler fra Claude-specifikke regler.

Læser Claude Code selv AGENTS.md?

Det vigtigste

Ja, fra og med version 2.1.277, der blev udgivet den 18. september 2026, men kun hvis der ikke findes nogen CLAUDE.md, .claude/CLAUDE.md eller CLAUDE.local.md i arbejdsbiblioteket eller over det. Hvis CLAUDE.md findes, læser Claude Code som standard kun den fil, og AGENTS.md medtages med linjen @AGENTS.md i CLAUDE.md eller med et symbolsk link. Adfærden ændres i /config under Project instructions. Før september læste Claude Code slet ikke AGENTS.md, og import var den eneste mulighed.

Før september 2026 var svaret “nej”. Issue #6235, hvor der blev bedt om understøttelse af AGENTS.md, havde været åben siden august 2025 og blev lukket den 17. august 2026. Dokumentationen om hukommelse pegede hele tiden på én løsning: Opret en CLAUDE.md, og medtag AGENTS.md i den som en import. Fra og med version 2.1.277 siger dokumentationen noget andet:

Claude Code kan læse AGENTS.md som projektinstruktioner, så et repository, der allerede er sat op til andre agenter, fungerer uden CLAUDE.md, en import eller konfiguration.

— Anthropic, https://code.claude.com/docs/en/memory#agents-md

Præcis hvad Claude Code læser, afhænger af, hvilke filer der findes i projektet:

Filer i projektetHvad Claude Code læser
AGENTS.md, uden CLAUDE.md eller CLAUDE.local.md i arbejdsbiblioteket eller over detAGENTS.md
AGENTS.md og CLAUDE.md (eller CLAUDE.local.md) i arbejdsbiblioteket eller over detKun CLAUDE.md
CLAUDE.md med linjen @AGENTS.mdCLAUDE.md og AGENTS.md indeni via importen

I denne kontrol tæller CLAUDE.md, .claude/CLAUDE.md og CLAUDE.local.md i arbejdsbiblioteket og alle biblioteker over det. En personlig ~/.claude/CLAUDE.md, en centralt administreret virksomhedsfil og regler fra .claude/rules/ tæller ikke med: de indlæses sammen med AGENTS.md.

Når der ikke findes nogen CLAUDE.md, læser Claude Code alle AGENTS.md- og .claude/AGENTS.md-filer i arbejdsbiblioteket og over det ved opstart, og indlæser en AGENTS.md i et underbibliotek, når det åbner en fil i dette underbibliotek. @path-importer i AGENTS.md virker også. Claude Code læser ikke AGENTS.local.md, AGENTS.override.md eller indholdet af biblioteket .agents/.

Fælden: En personlig CLAUDE.local.md tæller også. Opretter du en for at gemme dine ikke-committede regler, holder Claude Code lydløst op med at læse AGENTS.md. Indstillingen nedenfor er løsningen.

Adfærden ændres i /config under Project instructions:

IndstillingHvad Claude Code læser
claude-md-or-agents-md (standard)CLAUDE.md, eller, hvis hverken den eller CLAUDE.local.md findes, AGENTS.md
claude-md-and-agents-mdBegge filer: i hvert bibliotek først CLAUDE.md, derefter AGENTS.md
claude-mdKun CLAUDE.md
managed-onlyKun virksomhedens centralt administrerede CLAUDE.md og automatisk hukommelse

Hvis du vil beholde CLAUDE.local.md uden at miste AGENTS.md, skal du vælge claude-md-and-agents-md. Der sker ingen dobbelt indlæsning: Hvis AGENTS.md allerede er inkluderet via linjen @AGENTS.md eller et symbolsk link, indlæser Claude Code den ikke igen, uanset indstillingen.

Du kan kontrollere, om filen blev indlæst, med kommandoen /memory: fra og med version 2.1.280 vises stien til AGENTS.md på listen. I versioner før 2.1.277 og i sessioner, hvor det indbyggede agents-md-plugin er deaktiveret, læser Claude Code kun CLAUDE.md, og der findes ikke noget Project instructions-element i /config. Før version 2.1.281 fungerede sessioner via Amazon Bedrock og sessioner med deaktiveret telemetri på samme måde. I den første session efter opdatering fra en ældre version bliver AGENTS.md muligvis heller ikke indlæst; det fungerer fra den næste session.

Hvad betyder det for en opsætning med én fil? Hvis du ikke har regler, der kun gælder Claude, kan du springe CLAUDE.md over: AGENTS.md er nok, og Claude Code, Codex og Cursor læser den. Hvis du har sådanne regler (plan mode for risikofyldte biblioteker, skills, hooks), skal du bruge CLAUDE.md, og så holder Claude Code op med selv at læse AGENTS.md. Medtag derefter AGENTS.md i CLAUDE.md med linjen @AGENTS.md; denne opsætning fungerer præcis som før september. Den hjælper også med ældre versioner af Claude Code. Jeg forklarer det nærmere nedenfor.

Hvordan importerer du @AGENTS.md i CLAUDE.md?

Det vigtigste

En import er nødvendig, når projektet har en CLAUDE.md: Når den findes, læser Claude Code som standard ikke selv AGENTS.md. Skriv linjen @AGENTS.md øverst i filen CLAUDE.md for at konfigurere det. Når Claude Code starter en session, indsætter det indholdet af AGENTS.md i stedet for linjen og læser resultatet som én samlet tekst. Under importen kan du tilføje et afsnit med overskriften “Claude Code” med regler, der kun gælder Claude. Importer fungerer med relative og absolutte stier og kan indlejres op til fire niveauer dybt.

Et minimalt fungerende eksempel fra den officielle dokumentation:

@AGENTS.md

## Claude Code

Use plan mode for changes under `src/billing/`.

Sådan fungerer det. Den første linje, @AGENTS.md, er en importdirektiv. Når Claude Code fortolker CLAUDE.md ved starten af en session, finder det importen og indsætter hele indholdet af AGENTS.md i stedet for den. Derefter kommer overskriften ## Claude Code: Det er blot markdown, men fungerer som et afsnit med “Claude-specifikke tilføjelser”. Under den står en regel, der kun gælder Claude Code: Brug plan mode til ændringer i faktureringsbiblioteket. Codex CLI eller Cursor åbner slet ikke denne fil; de bruger den almindelige AGENTS.md.

Et citat fra dokumentationen om, hvordan importer fungerer:

CLAUDE.md-filer kan importere yderligere filer ved hjælp af syntaksen @path/to/import. Importerede filer udvides og indlæses i konteksten ved sessionens start sammen med den CLAUDE.md-fil, der henviser til dem.

— Anthropic, https://code.claude.com/docs/en/memory

Et par praktiske detaljer:

  • Relative og absolutte stier. @AGENTS.md er relativ til filen, der indeholder importen. @/Users/me/shared/rules.md eller @~/.claude/personal.md er absolutte stier. Jeg bruger @~/.claude/personal.md til personlige præferencer, som jeg ikke vil lægge i repositoryet.
  • Dybde på fire niveauer. AGENTS.md kan importere @docs/coding-style.md, og coding-style.md kan importere endnu en fil, op til fire niveauer. Det er nok til enhver reel struktur.
  • Backticks blokerer importer. Hvis teksten siger `@README`, er det blot en omtale af navnet, ikke en import. Det er nyttigt, når man forklarer læsere, hvordan importer fungerer, uden at udløse en.
  • Godkendelse af filer uden for projektet. Hvis en import peger uden for arbejdsbiblioteket, som @~/.claude/personal.md, viser Claude Code første gang en dialog med en liste over disse filer. Hvis du afslår, forbliver eksterne importer deaktiveret, og dialogen vises ikke igen. @AGENTS.md i projektets rod udløser ikke en dialog. Det beskytter dig mod ved et uheld at indlæse en uvedkommende fil i konteksten.

Efter jeg skiftede til denne opsætning i det beskrevne projekt, blev min CLAUDE.md forkortet fra 250 linjer til 60: @AGENTS.md plus fem til syv regler, der kun gælder Claude Code (plan mode for risikofyldte biblioteker, hvad man ikke må røre i adminområdet, og hvordan commits skal formuleres). Alt fælles ligger i AGENTS.md, som Codex og Cursor læser.

Det vigtigste

Anthropic tilbyder to mekanismer: en import via @AGENTS.md eller et symbolsk link, ln -s AGENTS.md CLAUDE.md. Et symbolsk link er enklere – det er blot et alias og kræver ingen filændringer. Men det har tre ulemper: Windows kræver administratorrettigheder, du kan ikke tilføje Claude-specifikke regler til CLAUDE.md, og Git viser nogle gange et symbolsk link som rod i diffen. Import er den universelle metode. Hvis du ikke har regler, der kun gælder Claude, behøver du fra og med version 2.1.277 ingen af delene: Claude Code læser selv AGENTS.md.

Dokumentationen viser det symbolske link sådan her:

ln -s AGENTS.md CLAUDE.md

Og lige efter giver den en ærlig advarsel om Windows:

Hvis du eller andre, der kloner repositoryet, arbejder på Windows, skal du bruge importen @AGENTS.md. Oprettelse af et symbolsk link kræver administratorrettigheder eller Developer Mode, og Git uden aktiveret core.symlinks checker et committet link ud som en almindelig tekstfil, så du ender med en `CLAUDE.md` på én linje i stedet for instruktionerne i den kopi.

— Anthropic, https://code.claude.com/docs/en/memory

Sammenligningstabel:

KriteriumImporten @AGENTS.mdSymbolsk link ln -s
Fungerer på Windows uden administratorrettighederjanej (Developer Mode kræves)
Kan tilføje regler, der kun gælder Claudeja, under importennej, filen er identisk
Vises i Git som almindelig markdownjasom et link (afhænger af core.symlinks)
Kan importere flere filerja, op til fire niveauernej, én til én
Caching/ugyldiggørelse i Claude Codestandard for CLAUDE.mdfungerer, men symbolske links har metaproblemer
Standardvalgegnet til allekun hvis brug på tværs af platforme ikke betyder noget

Jeg bruger importer i det beskrevne projekt. Årsagerne:

  1. Teamet bruger forskellige platforme. Jeg bruger Mac; i eksemplet er teamet omtrent ligeligt fordelt mellem Windows og Mac. Hvis der er et symbolsk link i repositoryet, bliver det for Windows-brugere uden Developer Mode checket ud som en almindelig tekstfil med én linje, AGENTS.md. Det skaber mærkelige fejl: Nogle gange virker reglerne, andre gange ikke, og det er uklart hvorfor.
  2. Jeg vil have Claude-specifikke regler. Under @AGENTS.md har min CLAUDE.md et afsnit med overskriften “Claude Code” og regler: Brug --effort high til arkitekturopgaver, kør npm run build før git push, og kald ikke /api/v1/deploy manuelt. Codex forstår ikke disse kommandoer.
  3. Det er nemmere at fejlfinde. Når noget går galt, åbner jeg CLAUDE.md og ser importen og mine tilsidesættelser. Et symbolsk link har ikke noget “dette blev tilføjet her”. Se guiden til sikker tilstand for mere om fejlfinding af Claude Code-indstillinger.

Hvis du ikke har Claude-specifikke regler, er et symbolsk link ikke længere nødvendigt fra og med version 2.1.277: Slet CLAUDE.md, så læser Claude Code selv AGENTS.md. Behold kun det symbolske link, hvis nogen på teamet bruger en version ældre end 2.1.277 og ikke kan opdatere. Hvis du har Claude-specifikke regler, er en import mere praktisk i ni ud af ti tilfælde.

Hvad læser Codex, Cursor, Copilot, Windsurf og Gemini CLI?

Det vigtigste

Hvert værktøj læser sin egen fil, nogle gange mere end én. Claude Code læser CLAUDE.md og har siden september 2026 også læst AGENTS.md, hvis projektet ikke har en CLAUDE.md. Codex CLI læser AGENTS.md plus AGENTS.override.md. Cursor læser enten det ældre .cursorrules-format eller det nyere .cursor/rules/*.mdc, og siden sommeren 2026 læser det også AGENTS.md. Copilot læser .github/copilot-instructions.md eller .github/instructions/*.instructions.md. Windsurf læser det ældre .windsurfrules eller det nyere .windsurf/rules/. Gemini CLI læser GEMINI.md. Aider og Cline har allerede taget AGENTS.md i brug.

Et overblik over de syv vigtigste værktøjer (baseret på hvert værktøjs officielle dokumentation):

VærktøjVigtigste instruktionsfilAlternativerLæser AGENTS.md?
Claude CodeCLAUDE.md~/.claude/CLAUDE.md, ./.claude/CLAUDE.md, administreret politikja, hvis projektet ikke har en CLAUDE.md (siden 2.1.277), ellers via en import
Codex CLI (OpenAI)AGENTS.mdAGENTS.override.mdja (indbygget)
Cursor.cursor/rules/*.mdc.cursorrules (udfaset)ja
GitHub Copilot.github/copilot-instructions.md.github/instructions/*.instructions.mdvia udvidelser
Windsurf.windsurf/rules/.windsurfrules (udfaset)ja
Gemini CLIGEMINI.md-nej
Aider, Cline, opencodeAGENTS.md-ja (indbygget)

Hvad følger der af dette? Hvis et repository har AGENTS.md (plus en CLAUDE.md med en import, når Claude-specifikke regler er nødvendige), får fem af de syv værktøjer automatisk opdaterede instruktioner. Cursor og Windsurf, som har deres egne indbyggede filer, kan enten blive, som de er (AGENTS.md læses også af dem), eller få tilføjet en @AGENTS.md-import – men deres syntaks er forskellig og understøttes ikke altid.

Den enkleste strategi for et nyt projekt:

  1. Læg alle fælles regler i AGENTS.md – 95 % af reglerne hører hjemme der.
  2. Opret CLAUDE.md, hvis du har brug for regler, der kun gælder Claude: Skriv @AGENTS.md på første linje, og tilføj derefter et afsnit med Claude-specifikke regler nedenunder. Hvis der ikke er sådanne regler, er CLAUDE.md unødvendig; Claude Code har selv læst AGENTS.md siden version 2.1.277.
  3. Behold .cursor/rules/ til Cursor i de sjældne tilfælde, hvor noget specifikt for Cursor er nødvendigt (kommandoerne @Codebase og @Docs).
  4. Gør det samme for Windsurf: Glem den gamle .windsurfrules; brug kun den nye .windsurf/rules/, når du har brug for mønstre til dens syntaks.

Denne tilgang giver 80 % af udbyttet for 20 % af arbejdet. Min erfaring er, at det bliver besværligt at vedligeholde mere end to kilder til sandhed (fælles regler plus Claude-specifikke), når man arbejder med blandede teams i “Antigravity”. Hvis nogen på teamet føjer en regel til .cursorrules og glemmer AGENTS.md, er Cursor og Codex uenige en uge senere.

Hvordan finder /init i Claude Code en eksisterende AGENTS.md?

Det vigtigste

/init bygger en CLAUDE.md ud fra det, der allerede findes i repositoryet, og sparer 20–30 minutters manuelt arbejde. Som standard henter den Cursor-regler (.cursor/rules/, .cursorrules) og Copilot-regler (.github/copilot-instructions.md), mens den læser AGENTS.md, .windsurfrules og .clinerules i tilstanden CLAUDE_CODE_NEW_INIT=1. Den samme tilstand starter et interaktivt forløb i flere faser: Den stiller spørgsmål, undersøger koden gennem en underagent og foreslår en plan, før den skriver. Siden september 2026 har /init en ulempe i et projekt med AGENTS.md: En ny CLAUDE.md deaktiverer direkte læsning af AGENTS.md, og reglerne ender i to filer.

Anthropic beskriver /init sådan i dokumentationen:

Når du kører /init, læser den andre værktøjers instruktionsfiler og flytter relevante dele over i den genererede CLAUDE.md: Cursor-regler fra .cursor/rules/ eller .cursorrules, Copilot-regler fra .github/copilot-instructions.md og, med CLAUDE_CODE_NEW_INIT=1, også AGENTS.md, .devin/rules/, .windsurf/rules/ eller .windsurfrules samt .clinerules.

— Anthropic, https://code.claude.com/docs/en/memory

Hvad betyder det i praksis? Repositoryet, jeg beskrev, havde en .cursorrules fra dengang, jeg prøvede Cursor (omkring 80 linjer), og en AGENTS.md (120 linjer, samlet manuelt). Da jeg kørte claude /init, tog kommandoen begge filer, fjernede lignende regler og sammensatte en ryddelig CLAUDE.md på et minut. Jeg kontrollerede den bagefter og lavede små ændringer – fjernede forældede punkter og tilføjede en struktur med overskrifter. Det gik hurtigere end at skrive alt om fra bunden.

Den interaktive tilstand, hvor /init også læser AGENTS.md, aktiveres via en miljøvariabel:

CLAUDE_CODE_NEW_INIT=1 claude

Når /init starter, stiller Claude en række opklarende spørgsmål: hvilke artefakter der skal konfigureres (CLAUDE.md, skills, hooks), hvilken stack projektet bruger, og hvilke kommandoer der skal bruges til tests. Derefter undersøger en underagent kodebasen – læser package.json, README.md og konfigurationsfiler – og udfylder de manglende dele. Til sidst viser den et forslag, som du kan redigere, før det gemmes. Se den separate guide for mere om konfiguration af Claude Code ved projektstart.

Nu til ulempen. Hvis projektet allerede har en aktiv AGENTS.md, opretter /init en CLAUDE.md ved siden af med en kopi af dens regler. Fra det tidspunkt læser Claude Code som standard kun CLAUDE.md, så der igen er to kilder til sandhed: Du opdaterer AGENTS.md, mens Claude fortsætter med at arbejde ud fra den gamle kopi. Kommandoen /import gør noget lignende: Den føjer en engangskopi af AGENTS.md til CLAUDE.md. For at bevare én kilde skal du sætte importen @AGENTS.md på første linje i CLAUDE.md efter /init og fjerne alt fra CLAUDE.md, der gentager AGENTS.md.

/init er det rette udgangspunkt for et nyt projekt eller et projekt, du flytter fra Cursor eller Copilot. Du behøver ikke lede online efter den “bedste CLAUDE.md-skabelon” – Anthropic tager allerede højde for indholdet i repositoryet. Hvis projektet allerede har en aktiv AGENTS.md, og der ikke er Claude-specifikke regler, er /init unødvendig: Claude Code læser selv AGENTS.md.

Hvordan adskiller du fælles instruktioner fra Claude-specifikke instruktioner?

Det vigtigste

Læg regler, som enhver AI-agent kan forstå, i AGENTS.md: hvad der ikke må røres, hvordan grene skal navngives, at .env indeholder en hemmelighed, og hvilke kommandoer der skal bruges til tests. Læg regler, der gælder specifikt for Claude Code, i CLAUDE.md (under importen): plan mode, skills, hooks, henvisninger til skills og modelnavne efter version. Skellet er enkelt: Hvis en regel begynder med “Claude bør”, hører den hjemme i CLAUDE.md. Hvis den begynder med “værktøjet bør”, hører den hjemme i AGENTS.md.

Jeg adskiller dem efter dette princip. Fælles regler, der hører hjemme i AGENTS.md:

  • Hvad der ikke må røres i koden. Mapperne .env, node_modules, prisma/migrations (kun via prisma migrate), .next/, .git/.
  • Hvordan ting skal navngives. Grene: feat/, fix/, chore/. Commits: præfikserne feat:, fix:, docs: plus en kort beskrivelse. Komponentfiler i kebab-case.
  • Test-/lint-kommandoer. npm run build, npm run lint, npm test. Hvilken kommando der skal køres før git push.
  • Arkitekturprincipper. Hvad der hører hjemme i src/lib/, hvad der hører hjemme i src/components/, hvor forretningslogikken ligger, og hvor brugergrænsefladen ligger.
  • Sikkerhed. Commit aldrig hemmeligheder. Få kun adgang til produktionsdatabasen via prod-psql. Få kun adgang til produktion via SSH gennem aliaset prod, ikke root@IP.

Claude-specifikke regler, der hører hjemme i CLAUDE.md (under @AGENTS.md):

  • Plan mode. Brug plan mode til ændringer i risikofyldte biblioteker (for eksempel src/billing/).
  • Arbejdsniveau. Brug --effort high til arkitekturopgaver og medium til rutinearbejde.
  • Skills. Hvilke AI-agenter og skills der skal køres i forskellige situationer. For eksempel: “kør skillen build-masterskaya-guide, når du arbejder på en guide”.
  • Claude-hukommelse. Hvad der skal gemmes i automatisk hukommelse, og hvad der skal gemmes i CLAUDE.local.md. Se guiden til Memory og CLAUDE.md for mere om Claude-hukommelse.
  • Hooks. Hvis .claude/settings.json har konfigurerede hooks, skal du beskrive i CLAUDE.md, hvad de gør (Codex og Cursor kender dem ikke og behøver heller ikke kende dem).
  • Skills og kommandoer. En liste over slash-kommandoer, jeg ofte bruger (/init, /cd, /memory, /plan).

Skellet er ikke altid tydeligt. For eksempel er “kør aldrig git push --force til main” klart fælles og hører hjemme i AGENTS.md. Men “brug plan mode, når du kører git push til en hot branch” er specifikt for Claude Code og hører derfor hjemme i CLAUDE.md. Testen er: “Hvis jeg fjernede Claude Code i morgen og kun beholdt Codex, ville denne regel så stadig gælde?” Hvis ja, skal den i AGENTS.md. Hvis nej, skal den i CLAUDE.md.

Hvad hører hjemme i AGENTS.md, og hvad hører hjemme i CLAUDE.md eller .claude/rules?

Det vigtigste

I et stort projekt er én AGENTS.md ikke nok – den bliver for stor, og hver agent får unødvendigt materiale ind i sin kontekst. Løsningen er et bibliotek med .claude/rules/, separate filer efter emne og YAML-frontmatter paths: til stibaserede udløsere. For eksempel gælder en API-regel kun, når Claude arbejder i src/api/. Det sparer meget plads i kontekstvinduet. Det tilsvarende for Cursor er .cursor/rules/, og for Windsurf er det .windsurf/rules/.

Hvis reglerne overstiger 200 linjer, er det tid til at dele dem op. Anthropics dokumentation anbefaler at sigte efter 200 linjer pr. fil, fordi lange CLAUDE.md-filer begynder lydløst at miste efterlevelse: Claude ser ud til at læse dem, men følger dem sjældnere.

En struktur til et stort projekt, der fungerer for mig:

my-project/
├── AGENTS.md                    # 100-150 lines, shared
├── CLAUDE.md                    # 30-50 lines: @AGENTS.md + Claude-only
└── .claude/
    ├── CLAUDE.md                # alternative to root file, same file
    └── rules/
        ├── api.md               # with paths: ['src/api/**']
        ├── components.md        # with paths: ['src/components/**']
        ├── testing.md           # without paths, always active
        └── security.md          # without paths, always active

Hver fil i .claude/rules/ kan have frontmatter:

---
paths:
  - "src/api/**/*.ts"
---

# API rules
- Every endpoint validates input with zod
- Errors use the standard `{error, code}` format
- OpenAPI comments are required

Claude indlæser kun disse regler, når det arbejder med filer, der matcher dette mønster. Hvis det redigerer src/components/Button.tsx, føjes API-reglerne ikke til konteksten. På den måde bruges kontekstvinduet kun på det, der er relevant. Biblioteket .claude/rules/ fungerer også uden CLAUDE.md: Hvis projektet kun indeholder AGENTS.md, indlæses reglerne sammen med den, og de deaktiverer ikke direkte læsning af AGENTS.md.

Cursor og Windsurf understøtter samme tilgang gennem deres biblioteker .cursor/rules/ og .windsurf/rules/. AGENTS.md-standarden kan henvise til disse biblioteker, men syntaksen på tværs af værktøjer er endnu ikke helt stabil. Det er sikrere at holde fælles regler i AGENTS.md og duplikere stiafgrænsede regler i .claude/rules/ og .cursor/rules/ – det er sjældne specialtilfælde, ikke hovedparten af reglerne.

Nyttige placeringer for CLAUDE.md (sorteret fra bredeste til snævreste):

NiveauPlaceringFormål
Administreret politik/Library/Application Support/ClaudeCode/CLAUDE.md (Mac), /etc/claude-code/CLAUDE.md (Linux)Virksomhedsregler, IT/DevOps
Bruger~/.claude/CLAUDE.mdPersonlige præferencer på tværs af alle projekter
Projekt./CLAUDE.md eller ./.claude/CLAUDE.mdProjektteamets regler
Lokal./CLAUDE.local.md (i .gitignore)Personlige præferencer for et bestemt projekt

Et eksempel på en ~/.claude/CLAUDE.md kunne indeholde to regler: “svar på brugerens foretrukne sprog” og “stav Ailoot præcis sådan”. Disse regler gælder for alle projekter, så der er ingen grund til at duplikere dem i hvert repository.

Af disse fire niveauer er det kun en projektbaseret CLAUDE.md og CLAUDE.local.md, der deaktiverer direkte læsning af AGENTS.md. En personlig ~/.claude/CLAUDE.md og en centralt administreret politik står ikke i vejen; Claude Code læser dem sammen med AGENTS.md.

Hvad skal du gøre, hvis AGENTS.md allerede er forældet i dit projekt?

Det vigtigste

Hvis AGENTS.md blev samlet tilbage i 2025 til Codex eller Aider og ikke er blevet redigeret siden, skal du åbne projektet i Claude Code og bede Claude om at redigere filen. AGENTS.md er et levende dokument; Linux Foundations specifikation bliver opdateret. Hovedreglen for at holde den aktuel: Hver regel skal besvare spørgsmålet “Hvad er jeg træt af at gentage for Claude/Codex?” Hvis den ikke gør det, skal den arkiveres.

I det projekt, jeg beskrev, havde jeg en AGENTS.md fra maj 2025 – 180 linjer, hvoraf mange var forældede (den nævnte Anthropic API-endpoints, der siden var blevet ændret; eksempler med claude --tools-syntaks, der ikke længere findes; og regler om ~/.claude/projects/ med en forældet struktur).

Den plan, jeg brugte til at opdatere den:

  1. Gennemgå den med claude i plan mode. Jeg åbner repositoryet, kører claude --safe-mode og spørger: “Læs AGENTS.md igen, og foreslå en liste over punkter, der er forældede eller gentagne. Rediger den ikke; angiv kun punkterne.” På to minutter fik jeg en liste med 23 punkter, der skulle gennemgås.
  2. Fjern de tydeligt forældede punkter. Af de 23 punkter var 9 tydeligt forældede – kommandosyntaks, endpoints og flagnavne. Jeg slettede de linjer.
  3. Saml dubletter. Yderligere 6 punkter gentog hinanden med andre formuleringer (“foretag ikke force-push”, “brug aldrig --force”, “undgå git push -f”). Jeg slog dem sammen til én linje.
  4. Tilføj nye punkter. Jeg tilføjede det, jeg havde bemærket, at Claude/Codex regelmæssigt havde gjort forkert den seneste måned, efter reglen “én linje pr. fejlmønster”. Det gav 8 nye punkter.
  5. Brug en underagent til en afsluttende gennemgang. Jeg bad Claude gennemgå den med instruktionen “find modsigelser, tvetydigheder og dubletter”. Den fandt tre formuleringer, der kunne gøres tydeligere. Jeg rettede dem.

Efter en time var AGENTS.md 110 linjer lang og opdateret, og jeg kendte hver linje personligt. Det var let at lave en CLAUDE.md på 30 linjer ud fra den. Codex blev også mærkbart mere omhyggelig med tests bagefter – jeg formoder, at nogle af dens “mærkelige” beslutninger skyldtes forældede instruktioner, som den i god tro havde fulgt.

Hovedprincipperne for en levende AGENTS.md:

  • Hver regel besvarer et tilbagevendende fejlmønster. Hvis jeg ikke kom i tanke om en regel en eneste gang i løbet af måneden, er der ingen grund til at beholde den.
  • Skriv regler som anvisninger, ikke teori. “Brug to mellemrum” er en regel. “Kodestilen bør være pæn” er det ikke.
  • Vær konkret. “Kør npm run build før git push” er en regel. “Test dine ændringer” er det ikke.

Hvad fungerer DEFINITIVT IKKE med denne opsætning?

Det vigtigste

Import af @AGENTS.md får ikke forskellige værktøjer til at opføre sig ens. Hvert værktøj har sine egne særheder: Codex CLI kender ikke .claude/rules/ eller hooks. Cursor har sin egen autocomplete-motor, som ikke læser CLAUDE.md, mens den fuldfører tekst. Copilot følger .github/copilot-instructions.md, og regler i AGENTS.md alene er ikke nok til det. Det er ikke “én fil = én adfærd”; det er “én kilde til grundreglerne, og derefter har hvert værktøj sine egne tilføjelser”.

Et par ting, jeg lærte på den hårde måde i løbet af seks måneders arbejde med denne opsætning:

1. Cursor-autocomplete bruger ikke AGENTS.md. Når Cursor foreslår at fuldføre en linje i editoren, læser det ikke AGENTS.md i realtid – der arbejder en separat, hurtig motor. Regler i AGENTS.md betyder kun noget, når du sender en chatforespørgsel i Cursor. Det betyder, at det ikke påvirker autocomplete at skrive “brug ikke var, brug const” i AGENTS.md; du skal konfigurere det gennem ESLint eller TypeScript-konfigurationen.

2. Claude Code-hooks i AGENTS.md virker ikke for Codex. Hvis .claude/settings.json har en PreToolUse-hook konfigureret til at blokere en bestemt handling, er oplysningerne kun nyttige for Claude. Codex kender ikke hooks; for Codex er det “værktøjet bestemmer selv”. Det giver mening at skrive “gør ikke X” i AGENTS.md og “der er en hook, som fysisk blokerer X” i CLAUDE.md under importen.

3. Copilot og .github/copilot-instructions.md. GitHub Copilot læser sin egen fil og læser stadig ikke AGENTS.md særlig godt. Hvis dit team bruger Copilot aktivt, kan du enten tilføje en separat .github/copilot-instructions.md med en forkortet version af reglerne eller bruge Copilot Extensions, som kender AGENTS.md. Det ændrer sig hurtigt, så billedet kan se anderledes ud om tre til seks måneder.

4. Git registrerer ikke et symbolsk link som en CLAUDE.md-ændring. Hvis du kører ln -s AGENTS.md CLAUDE.md og opdaterer AGENTS.md en uge senere, viser Git kun en diff for AGENTS.md. Det er normalt, men en kollega, der gennemgår PR'en, opdager måske ikke, at CLAUDE.md også er blevet opdateret (via det symbolske link). Løsning: Skriv udtrykkeligt i PR-beskrivelsen: “opdaterede AGENTS.md; Claude Code ser den samme fil via det symbolske link”.

5. Dybe importer er svære at fejlfinde. Hvis AGENTS.md importerer @docs/coding-style.md, som importerer @docs/typescript.md, og en regel er i konflikt med en anden, er det svært at fejlfinde. Jeg begrænser importer til ét niveau (CLAUDE.md → AGENTS.md) og indlejrer ikke videre. Anthropic tilbyder en InstructionsLoaded-hook, der logger, hvilke filer der blev indlæst – nyttig til fejlfinding af lagdelte opsætninger. Bemærk: Hooken udløses for AGENTS.md, der er inkluderet via en import eller et symbolsk link, men ikke for AGENTS.md, som Claude Code selv har læst.

Kilder

Den komplette opsætning til vibe-kodning på en aften: AI-klon + Second Brain + kontekstteknik.

Lær Ailoot at kende.

Flere oplysninger

Spørgsmål og svar

Brug @AGENTS.md i CLAUDE.md, når du kræver Claude-specifikke tilføjelser, eller kolleger bruger Windows. Et symlink lader begge navne henvise til samme indhold og kan derfor ikke indeholde et separat Claude-afsnit.

Hvordan kontrollerer jeg indlæsning af fælles instruktioner?

Kør /memory, og kontrollér de viste instruktionsfiler. Tilføj importen, eller vælg indstillingen, der indlæser begge, hvis CLAUDE.md eller CLAUDE.local.md undertrykker direkte AGENTS.md-indlæsning i konfigurationen. Start derefter en frisk session.

Alle artikler