Én instruksjonsfil for Claude Code, Codex og Cursor i 2026
MarkdownÉn kilde til sannhet for Claude Code, Codex og Cursor i 2026: når Claude Code leser AGENTS.md selv, import av @AGENTS.md i CLAUDE.md, en symbolsk lenke og /init.
Les hele artikkelen
Se Ailoot-dokumentasjonen for informasjon om tjenesten.
Hva endrer seg når du bruker Claude Code, Codex og Cursor sammen?
Viktig poeng
I 2026 består et typisk oppsett for en vibe coder ikke av ett verktøy, men av 3–5. Claude Code som hovedverktøy, Codex for lange autonome oppgaver, Cursor for raske redigeringer i IDE-en. Hvert verktøy har sin egen instruksjonsfil: CLAUDE.md, AGENTS.md, .cursorrules. Hvis du holder dem synkronisert manuelt, redigerer du én linje fem steder, glemmer å oppdatere Cursor, og en uke senere gir Claude og Codex ulike resultater for samme prompt.
I eksempelet som beskrives, er Claude Code hovedverktøyet, mens Codex og Cursor brukes til bestemte oppgaver. CLAUDE.md-filen min har omtrent 250 linjer med instruksjoner: hva som skal leses og i hvilken rekkefølge, hva som ikke må røres, hvilke kommandoer som skal brukes for utrulling, og regler for commit-formatering. Da jeg prøvde Codex CLI på prosjektet for første gang, kjente det ikke til noen av reglene: det kjørte git push --force, snoket rundt i .env og ga filer nye navn på en skjødesløs måte.
Først kopierte jeg CLAUDE.md til AGENTS.md for hånd. To uker senere oppdaget jeg at prosjektet allerede hadde fire versjoner av den samme instruksjonen: i CLAUDE.md, AGENTS.md, .cursorrules og .windsurf/rules/. Alle var litt forskjellige. Dette er ikke et Claude- eller Cursor-problem; det er den grunnleggende fellen i ethvert system med flere sannhetskilder. Jeg drøfter dette problemet mer inngående i veiledningen om arbeid med flere agenter.
I juni 2026 ga Anthropic ett svar i dokumentasjonen om Claude Code-minne: en delt fil pluss en import. Siden september 2026 har Claude Code lest AGENTS.md selv hvis prosjektet ikke har CLAUDE.md, og en import trengs når du har regler som er spesifikke for Claude. Nedenfor forklarer jeg når én AGENTS.md er nok, hvordan du setter opp en import, og hvordan du skiller delte regler fra Claude-spesifikke regler.
Leser Claude Code AGENTS.md selv?
Viktig poeng
Ja, fra og med versjon 2.1.277, som ble utgitt 18. september 2026, men bare hvis det ikke finnes noen CLAUDE.md, .claude/CLAUDE.md eller CLAUDE.local.md i arbeidskatalogen eller over den. Hvis CLAUDE.md finnes, leser Claude Code bare den filen som standard, og AGENTS.md tas med ved hjelp av linjen @AGENTS.md i CLAUDE.md eller en symbolsk lenke. Atferden endres i /config, under Project instructions. Før september leste Claude Code ikke AGENTS.md i det hele tatt, og import var den eneste løsningen.
Før september 2026 var svaret «nei». Issue #6235, som ba om støtte for AGENTS.md, hadde vært åpen siden august 2025 og ble lukket 17. august 2026. Dokumentasjonen om minne viste til én løsning hele tiden: Opprett en CLAUDE.md og ta med AGENTS.md i den som en import. Fra og med versjon 2.1.277 sier dokumentasjonen noe annet:
Claude Code kan lese
AGENTS.mdsom prosjektinstruksjoner, slik at et repositorium som allerede er satt opp for andre agenter, fungerer utenCLAUDE.md, import eller konfigurasjon.
Nøyaktig hva Claude Code leser, avhenger av hvilke filer som finnes i prosjektet:
| Filer i prosjektet | Hva Claude Code leser |
|---|---|
AGENTS.md, uten CLAUDE.md eller CLAUDE.local.md i arbeidskatalogen eller over den | AGENTS.md |
AGENTS.md og CLAUDE.md (eller CLAUDE.local.md) i arbeidskatalogen eller over den | Bare CLAUDE.md |
CLAUDE.md med linjen @AGENTS.md | CLAUDE.md, og AGENTS.md inne i den via importen |
I denne kontrollen teller CLAUDE.md, .claude/CLAUDE.md og CLAUDE.local.md i arbeidskatalogen og alle overordnede kataloger. En personlig ~/.claude/CLAUDE.md, en bedriftsadministrert fil og regler fra .claude/rules/ teller ikke: De lastes inn sammen med AGENTS.md.
Hvis det ikke finnes noen CLAUDE.md, leser Claude Code alle AGENTS.md- og .claude/AGENTS.md-filer i arbeidskatalogen og overordnede kataloger ved oppstart, og henter inn en AGENTS.md i en underkatalog når det åpner en fil der. @path-importer i AGENTS.md fungerer også. Claude Code leser ikke AGENTS.local.md, AGENTS.override.md eller innholdet i .agents/-katalogen.
Haken er at en personlig CLAUDE.local.md også teller. Opprett en for å holde orden på dine egne, ikke-innsendte regler, og Claude Code slutter i det stille å lese AGENTS.md. Innstillingen nedenfor løser dette.
Atferden endres i /config, under Project instructions:
| Innstilling | Hva Claude Code leser |
|---|---|
claude-md-or-agents-md (standard) | CLAUDE.md, eller, hvis verken den eller CLAUDE.local.md finnes, AGENTS.md |
claude-md-and-agents-md | Begge filene: i hver katalog først CLAUDE.md, deretter AGENTS.md |
claude-md | Bare CLAUDE.md |
managed-only | Bare den bedriftsadministrerte CLAUDE.md og automatisk minne |
Hvis du vil beholde CLAUDE.local.md uten å miste AGENTS.md, velger du claude-md-and-agents-md. Filene leses ikke dobbelt: Hvis AGENTS.md allerede er tatt med via linjen @AGENTS.md eller en symbolsk lenke, laster Claude Code den ikke inn en gang til, uansett innstilling.
Du kan kontrollere om filen ble hentet inn med kommandoen /memory: Fra og med versjon 2.1.280 vises banen til AGENTS.md i listen. I versjoner før 2.1.277 og i økter der den innebygde agents-md-pluginen er deaktivert, leser Claude Code bare CLAUDE.md, og /config har ikke noe Project instructions-element. Før versjon 2.1.281 oppførte økter via Amazon Bedrock og økter med deaktivert telemetri seg på samme måte. I den første økten etter oppdatering fra en eldre versjon kan AGENTS.md også bli oversett; det fungerer fra og med neste økt.
Hva betyr dette for et oppsett med én fil? Hvis du ikke har regler som bare gjelder Claude, kan du droppe CLAUDE.md: AGENTS.md er nok, og Claude Code, Codex og Cursor leser den. Hvis du har slike regler (plan mode for risikokataloger, skills, hooks), trenger du CLAUDE.md, og Claude Code slutter å lese AGENTS.md på egen hånd. Ta da med AGENTS.md i CLAUDE.md med linjen @AGENTS.md; dette oppsettet fungerer akkurat som før september. Det er også nyttig med eldre versjoner av Claude Code. Jeg forklarer det nærmere nedenfor.
Hvordan importerer du @AGENTS.md i CLAUDE.md?
Viktig poeng
Import er nødvendig når prosjektet har en CLAUDE.md: Når den finnes, leser ikke Claude Code AGENTS.md på egen hånd som standard. Sett det opp ved å skrive linjen @AGENTS.md øverst i CLAUDE.md-filen. Når Claude Code starter en økt, setter det innholdet i AGENTS.md inn i stedet for den linjen og leser resultatet som én samlet tekst. Under importen kan du legge til en «Claude Code»-seksjon med regler som bare gjelder Claude. Importer fungerer med relative og absolutte baner, og kan nøstes opptil fire nivåer dypt.
Et minimalt fungerende eksempel fra den offisielle dokumentasjonen:
@AGENTS.md
## Claude Code
Use plan mode for changes under `src/billing/`.
Dette er det som skjer. Den første linjen, @AGENTS.md, er et importdirektiv. Når Claude Code tolker CLAUDE.md ved starten av en økt, finner det denne importen og setter inn hele innholdet i AGENTS.md på dens plass. Deretter kommer overskriften ## Claude Code: Det er vanlig markdown, men fungerer som en seksjon for «Claude-spesifikke tillegg». Under den står en regel som bare gjelder Claude Code: Bruk plan mode for endringer i billing-katalogen. Codex CLI eller Cursor åpner ikke denne filen i det hele tatt; de bruker den vanlige AGENTS.md.
Et sitat fra dokumentasjonen om hvordan importer fungerer:
CLAUDE.md-filer kan importere flere filer med syntaksen
@path/to/import. Importerte filer utvides og lastes inn i konteksten ved oppstart av en økt sammen med CLAUDE.md-filen som viser til dem.
Noen praktiske detaljer:
- Relative og absolutte baner.
@AGENTS.mder relativ til filen som inneholder importen.@/Users/me/shared/rules.mdeller@~/.claude/personal.mder absolutte baner. Jeg bruker@~/.claude/personal.mdfor personlige preferanser jeg ikke vil legge i repositoriet. - Fire nivåer dypt.
AGENTS.mdkan importere@docs/coding-style.md, ogcoding-style.mdkan importere noe annet, opptil fire nivåer dypt. Det holder for enhver reell struktur. - Backticks blokkerer importer. Hvis teksten sier
`@README`, er det bare en omtale av navnet, ikke en import. Det er nyttig når du forklarer leserne hvordan importer fungerer uten å utløse en. - Godkjenning for filer utenfor prosjektet. Hvis en import peker utenfor arbeidskatalogen, som
@~/.claude/personal.md, viser Claude Code en dialog med en liste over disse filene første gang. Hvis du avslår, forblir eksterne importer deaktivert, og dialogen vises ikke igjen.@AGENTS.mdi prosjektets rot utløser ikke en dialog. Dette beskytter deg mot å laste inn en uvedkommende fil i konteksten ved et uhell.
Etter at jeg gikk over til dette oppsettet i prosjektet som beskrives, krympet CLAUDE.md fra 250 linjer til 60: @AGENTS.md pluss fem til sju regler som bare gjelder Claude Code (plan mode for risikokataloger, hva som ikke må røres i adminområdet og hvordan commits skal formuleres). Alt felles ligger i AGENTS.md, som Codex og Cursor leser.
Når bør du velge en symbolsk lenke, og når bør du velge en import?
Viktig poeng
Anthropic tilbyr to mekanismer: en import via @AGENTS.md eller en symbolsk lenke, ln -s AGENTS.md CLAUDE.md. En symbolsk lenke er enklere: Det er bare et alias og krever ingen filendringer. Men den har tre ulemper: Windows krever administratorrettigheter, du kan ikke legge Claude-spesifikke regler til CLAUDE.md, og Git viser noen ganger en symbolsk lenke som søppel i diffen. Import er den universelle løsningen. Hvis du ikke har regler som bare gjelder Claude, trenger du ingen av delene fra og med versjon 2.1.277: Claude Code leser AGENTS.md selv.
Dokumentasjonen viser alternativet med symbolsk lenke slik:
ln -s AGENTS.md CLAUDE.md
Og den gir straks en tydelig advarsel om Windows:
Hvis du eller noen som kloner repositoriet, bruker Windows, bør du bruke importen
@AGENTS.md. Der krever det administratorrettigheter eller Developer Mode å opprette en symbolsk lenke, og Git uten aktivertcore.symlinkssjekker ut en innsendt lenke som en vanlig tekstfil, slik at det blir en énlinjesCLAUDE.mdi den kopien i stedet for instruksjonene.
Sammenligningstabell:
| Kriterium | Import med @AGENTS.md | Symbolsk lenke ln -s |
|---|---|---|
| Fungerer på Windows uten administratorrettigheter | ja | nei (Developer Mode kreves) |
| Kan legge til regler bare for Claude | ja, under importen | nei, filen er identisk |
| Vises i Git som vanlig markdown | ja | som en lenke (avhenger av core.symlinks) |
| Kan importere flere filer | ja, opptil fire nivåer | nei, én-til-én |
| Bufring/ugyldiggjøring i Claude Code | standard for CLAUDE.md | fungerer, men symbolsk lenke har metadatafallgruver |
| Standardvalg | passer for alle | bare hvis bruk på tvers av plattformer ikke er viktig |
Jeg bruker importer i prosjektet som beskrives. Grunnene er:
- Teamet er blandet. Jeg bruker Mac; i eksempelet er teamet omtrent likt fordelt mellom Windows og Mac. Hvis det ligger en symbolsk lenke i repositoriet, vil den for Windows-brukere uten Developer Mode bli sjekket ut som en vanlig tekstfil med én linje,
AGENTS.md. Det skaper merkelige feil: Noen ganger fungerer reglene, andre ganger ikke, og det er uklart hvorfor. - Jeg vil ha Claude-spesifikke regler. Under
@AGENTS.mdharCLAUDE.md-filen min en «Claude Code»-seksjon med regler: Bruk--effort highfor arkitekturoppgaver, kjørnpm run buildførgit push, og ikke kall/api/v1/deployfor hånd. Codex forstår ikke disse kommandoene. - Det er enklere å feilsøke. Når noe går galt, åpner jeg
CLAUDE.mdog ser importen og overstyringene mine. En symbolsk lenke viser ikke at «dette ble lagt til her». Les veiledningen om sikker modus for mer informasjon om feilsøking av Claude Code-innstillinger.
Hvis du ikke har Claude-spesifikke regler, trengs ikke lenger en symbolsk lenke fra og med versjon 2.1.277: Slett CLAUDE.md, så leser Claude Code AGENTS.md selv. Behold lenken bare hvis noen på teamet bruker en versjon eldre enn 2.1.277 og ikke kan oppdatere. Hvis du har Claude-spesifikke regler, er import mer praktisk i ni av ti tilfeller.
Hva leser Codex, Cursor, Copilot, Windsurf og Gemini CLI?
Viktig poeng
Hvert verktøy leser sin egen fil, noen ganger flere enn én. Claude Code leser CLAUDE.md, og siden september 2026 også AGENTS.md hvis prosjektet ikke har CLAUDE.md. Codex CLI leser AGENTS.md pluss AGENTS.override.md. Cursor leser det eldre .cursorrules-formatet eller det nyere .cursor/rules/*.mdc, og siden sommeren 2026 leser det også AGENTS.md. Copilot leser .github/copilot-instructions.md eller .github/instructions/*.instructions.md. Windsurf leser den eldre .windsurfrules eller den nyere .windsurf/rules/. Gemini CLI leser GEMINI.md. Aider og Cline har allerede tatt i bruk AGENTS.md.
En oversikt over de sju viktigste verktøyene (basert på den offisielle dokumentasjonen for hvert verktøy):
| Verktøy | Hovedfil for instruksjoner | Alternativer | Leser det AGENTS.md? |
|---|---|---|---|
| Claude Code | CLAUDE.md | ~/.claude/CLAUDE.md, ./.claude/CLAUDE.md, administrert policy | ja, hvis prosjektet ikke har CLAUDE.md (siden 2.1.277), ellers via en import |
| Codex CLI (OpenAI) | AGENTS.md | AGENTS.override.md | ja (innebygd) |
| Cursor | .cursor/rules/*.mdc | .cursorrules (utdatert) | ja |
| GitHub Copilot | .github/copilot-instructions.md | .github/instructions/*.instructions.md | via utvidelser |
| Windsurf | .windsurf/rules/ | .windsurfrules (utdatert) | ja |
| Gemini CLI | GEMINI.md | - | nei |
| Aider, Cline, opencode | AGENTS.md | - | ja (innebygd) |
Hva følger av dette? Hvis et repo har AGENTS.md (pluss en CLAUDE.md med import når Claude-spesifikke regler trengs), får fem av de sju verktøyene oppdaterte instruksjoner automatisk. Cursor og Windsurf, som har egne filer, kan stå som de er (AGENTS.md leses også av dem), eller du kan legge til en import med @AGENTS.md — men syntaksen deres er forskjellig og støttes ikke alltid.
Den enkleste strategien for et nytt prosjekt:
- Legg alle delte regler i
AGENTS.md— 95% av reglene hører hjemme der. - Opprett
CLAUDE.mdhvis du trenger regler bare for Claude: Sett@AGENTS.mdpå første linje, og legg deretter til en seksjon med Claude-spesifikke regler. Hvis du ikke har slike regler, erCLAUDE.mdunødvendig; Claude Code har lestAGENTS.mdselv siden versjon 2.1.277. - Behold
.cursor/rules/for Cursor i sjeldne tilfeller der noe Cursor-spesifikt trengs (kommandoene@Codebaseog@Docs). - Gjør det samme for Windsurf: Glem den gamle
.windsurfrules; bruk den nye.windsurf/rules/bare når det trengs mønstre for syntaksen der.
Denne tilnærmingen gir deg 80% av gevinsten for 20% av arbeidet. Etter min erfaring blir det krevende å vedlikeholde mer enn to sannhetskilder (delt pluss Claude-spesifikt) når jeg rydder opp i blandede team i «Antigravity». Hvis noen på teamet legger til en regel i .cursorrules og glemmer AGENTS.md, vil Cursor og Codex være uenige en uke senere.
Hvordan plukker /init i Claude Code opp en eksisterende AGENTS.md?
Viktig poeng
/init bygger en CLAUDE.md ut fra det som allerede finnes i repositoriet, og sparer 20–30 minutter med manuelt arbeid. Som standard plukker det opp Cursor-regler (.cursor/rules/, .cursorrules) og Copilot-regler (.github/copilot-instructions.md), mens det leser AGENTS.md, .windsurfrules og .clinerules i modusen CLAUDE_CODE_NEW_INIT=1. Denne modusen starter også en interaktiv prosess i flere faser: Den stiller spørsmål, utforsker koden via en subagent og foreslår en plan før den skriver. Siden september 2026 har /init en ulempe i et prosjekt med AGENTS.md: En ny CLAUDE.md deaktiverer direkte lesing av AGENTS.md, og reglene ender opp i to filer.
Anthropic beskriver /init slik i dokumentasjonen:
Når du kjører
/init, leses instruksjonsfiler fra andre verktøy, og relevante deler flyttes til den genererteCLAUDE.md: Cursor-regler fra `.cursor/rules/` eller `.cursorrules`, Copilot-regler fra `.github/copilot-instructions.md` og, medCLAUDE_CODE_NEW_INIT=1, ogsåAGENTS.md, `.devin/rules/`, `.windsurf/rules/` eller `.windsurfrules`, samt `.clinerules`.
Hva betyr dette i praksis? Repositoriet jeg beskrev, hadde en .cursorrules fra den gangen jeg prøvde Cursor (omtrent 80 linjer) og en AGENTS.md (120 linjer) som var satt sammen for hånd. Da jeg kjørte claude /init, brukte kommandoen begge filene, fjernet gjentakelser av lignende regler og satte sammen en ryddig CLAUDE.md på ett minutt. Jeg kontrollerte den etterpå og gjorde små endringer — fjernet utdaterte punkter og la til en struktur med overskrifter. Det gikk raskere enn å skrive alt om fra bunnen av.
Den interaktive modusen, der /init også leser AGENTS.md, aktiveres med en miljøvariabel:
CLAUDE_CODE_NEW_INIT=1 claude
Når /init starter, stiller Claude en rekke oppklarende spørsmål: hvilke artefakter som skal konfigureres (CLAUDE.md, skills, hooks), hvilken stack prosjektet bruker, og hvilke kommandoer som skal brukes til tester. Deretter utforsker en subagent kodebasen — ved å lese package.json, README.md og konfigurasjonsfiler — og fyller inn manglende deler. Til slutt viser den et forslag du kan redigere før du lagrer. Se den separate veiledningen for mer om hvordan du konfigurerer Claude Code når du starter et prosjekt.
Så til ulempen. Hvis prosjektet allerede har en aktiv AGENTS.md, oppretter /init en CLAUDE.md ved siden av med en kopi av reglene. Fra da av leser Claude Code bare CLAUDE.md som standard, og dermed har du igjen to sannhetskilder: Du oppdaterer AGENTS.md, mens Claude fortsetter å bruke den gamle kopien. Kommandoen /import gjør noe lignende: Den legger en engangskopi av AGENTS.md til i CLAUDE.md. For å beholde én kilde legger du importen @AGENTS.md på første linje i CLAUDE.md etter /init, og fjerner alt i CLAUDE.md som gjentar AGENTS.md.
/init er et godt utgangspunkt for et nytt prosjekt eller et du flytter over fra Cursor eller Copilot. Du trenger ikke lete på nettet etter den «beste CLAUDE.md-malen» — Anthropic tar allerede hensyn til det som finnes i repositoriet. Hvis prosjektet allerede har en aktiv AGENTS.md, og det ikke finnes regler bare for Claude, er /init unødvendig: Claude Code leser AGENTS.md selv.
Hvordan skiller du delte og Claude-spesifikke instruksjoner?
Viktig poeng
Legg regler som alle AI-agenter kan forstå, i AGENTS.md: hva som ikke må røres, hvordan grener skal navngis, at .env inneholder en hemmelighet, og hvilke kommandoer som skal brukes til tester. Legg regler som er spesifikke for Claude Code, i CLAUDE.md (under importen): plan mode, skills, hooks, referanser til skills og modellnavn etter versjon. Skillet er enkelt: Hvis en regel begynner med «Claude bør», hører den hjemme i CLAUDE.md. Hvis den begynner med «verktøyet bør», hører den hjemme i AGENTS.md.
Jeg skiller dem etter dette prinsippet. Delte regler som hører hjemme i AGENTS.md:
- Hva som ikke må røres i koden.
.env,node_modules,prisma/migrations-katalogene (bare viaprisma migrate),.next/,.git/. - Hvordan ting skal navngis. Grener:
feat/,fix/,chore/. Commits: prefiksenefeat:,fix:,docs:pluss en kort beskrivelse. Komponentfiler ikebab-case. - Test-/lintkommandoer.
npm run build,npm run lint,npm test. Hvilken kommando som skal kjøres førgit push. - Arkitekturprinsipper. Hva som hører hjemme i
src/lib/ogsrc/components/, hvor forretningslogikken ligger, og hvor brukergrensesnittet ligger. - Sikkerhet. Ikke send inn hemmeligheter i commits. Bruk bare
prod-psqlfor å få tilgang til produksjonsdatabasen. Koble til produksjon over SSH bare via aliasetprod, ikke viaroot@IP.
Claude-spesifikke regler som hører hjemme i CLAUDE.md (under @AGENTS.md):
- Plan mode. Bruk
plan modefor endringer i risikokataloger (for eksempelsrc/billing/). - Innsatsnivå. Bruk
--effort highfor arkitekturoppgaver ogmediumfor rutinearbeid. - Skills. Hvilke AI-agenter og ferdigheter som skal kjøres i ulike situasjoner. For eksempel: «Kjør
build-masterskaya-guide-skillen når du arbeider med en veiledning.» - Claude-minne. Hva som skal legges i automatisk minne og hva som skal legges i
CLAUDE.local.md. Les veiledningen om Memory og CLAUDE.md for mer om Claude-minne. - Hooks. Hvis
.claude/settings.jsonhar konfigurerte hooks, beskriv iCLAUDE.mdhva de gjør (Codex og Cursor kjenner dem ikke, og trenger ikke å gjøre det). - Skills og kommandoer. En liste over skråstrekkommandoer jeg ofte bruker (
/init,/cd,/memory,/plan).
Grensen er ikke alltid tydelig. «Kjør aldri git push --force mot main» er for eksempel klart delt og hører derfor hjemme i AGENTS.md. Men «bruk plan mode først når du kjører git push til en hot branch» er spesifikt for Claude Code og hører derfor hjemme i CLAUDE.md. Testen er: «Hvis jeg fjernet Claude Code i morgen og bare beholdt Codex, ville denne regelen fortsatt gjelde?» Hvis svaret er ja, legger du den i AGENTS.md. Hvis nei, legger du den i CLAUDE.md.
Hva hører hjemme i AGENTS.md, og hva hører hjemme i CLAUDE.md eller .claude/rules?
Viktig poeng
For et stort prosjekt er én AGENTS.md ikke nok — filen blir for stor, og hver agent får unødvendig materiale i konteksten sin. Løsningen er en .claude/rules/-katalog med egne filer for hvert emne og YAML-frontmatter med paths: for banebaserte utløsere. En API-regel gjelder for eksempel bare når Claude arbeider i src/api/. Det sparer mye plass i kontekstvinduet. Det tilsvarende for Cursor er .cursor/rules/, og for Windsurf .windsurf/rules/.
Hvis reglene overstiger 200 linjer, er det på tide å dele dem opp. Anthropic anbefaler i dokumentasjonen å sikte mot 200 linjer per fil, fordi Claude begynner å følge lange CLAUDE.md-filer dårligere uten å si fra: Det virker som om Claude leser dem, men følger dem sjeldnere.
En struktur for et stort prosjekt som fungerer for meg:
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 ha 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 laster bare inn disse reglene når det arbeider med filer som samsvarer med dette mønsteret. Hvis det endrer src/components/Button.tsx, legges ikke API-reglene til i konteksten. På denne måten brukes kontekstvinduet bare på det som er relevant. .claude/rules/-katalogen fungerer også uten CLAUDE.md: Hvis prosjektet bare inneholder AGENTS.md, lastes reglene inn sammen med den og de deaktiverer ikke direkte lesing av AGENTS.md.
Cursor og Windsurf støtter samme tilnærming via katalogene .cursor/rules/ og .windsurf/rules/. AGENTS.md-standarden kan vise til disse katalogene, men syntaksen på tvers av verktøy er ennå ikke helt stabil. Det er tryggere å beholde delte regler i AGENTS.md og duplisere banebegrensede regler i .claude/rules/ og .cursor/rules/ — dette er sjeldne spesialtilfeller, ikke hoveddelen av reglene.
Nyttige plasseringer for CLAUDE.md (ordnet fra bredest til smalest):
| Nivå | Plassering | Formål |
|---|---|---|
| Administrert policy | /Library/Application Support/ClaudeCode/CLAUDE.md (Mac), /etc/claude-code/CLAUDE.md (Linux) | Bedriftsregler, IT/DevOps |
| Bruker | ~/.claude/CLAUDE.md | Personlige preferanser på tvers av alle prosjekter |
| Prosjekt | ./CLAUDE.md eller ./.claude/CLAUDE.md | Regler for prosjektteamet |
| Lokal | ./CLAUDE.local.md (i .gitignore) | Personlige preferanser for et bestemt prosjekt |
En eksempel-~/.claude/CLAUDE.md kan inneholde to regler: «svar på språket brukeren foretrekker» og «stav Ailoot akkurat slik». Disse reglene gjelder for alle prosjekter, så det er ikke nødvendig å gjenta dem i hvert repositorium.
Av disse fire nivåene er det bare prosjektets CLAUDE.md og CLAUDE.local.md som deaktiverer direkte lesing av AGENTS.md. En personlig ~/.claude/CLAUDE.md og en administrert policy står ikke i veien; Claude Code leser dem sammen med AGENTS.md.
Hva bør du gjøre hvis AGENTS.md allerede er utdatert i prosjektet?
Viktig poeng
Hvis AGENTS.md ble satt sammen i 2025 for Codex eller Aider og ikke har blitt redigert siden, åpner du prosjektet i Claude Code og ber Claude redigere filen. AGENTS.md er et levende dokument; Linux Foundation-spesifikasjonen oppdateres. Hovedregelen for å holde det oppdatert er at hver regel må svare på spørsmålet «Hva er jeg lei av å gjenta for Claude/Codex?» Hvis den ikke gjør det, arkiverer du den.
I prosjektet jeg beskrev, hadde jeg en AGENTS.md fra mai 2025 — 180 linjer, mange av dem utdaterte (den nevnte Anthropic API-endepunkter som siden var endret; eksempler med claude --tools-syntaks som ikke lenger finnes; og regler om ~/.claude/projects/ med en utdatert struktur).
Planen jeg brukte for å oppdatere den:
- Gå gjennom den med
claudei plan mode. Jeg åpner repoet, kjørerclaude --safe-modeog spør: «LesAGENTS.mdpå nytt og foreslå en liste over utdaterte eller gjentatte punkter. Ikke rediger den; bare list dem opp.» På to minutter fikk jeg en liste med 23 punkter til gjennomgang. - Fjern åpenbart utdaterte punkter. Av de 23 punktene var 9 tydelig utdaterte — kommandosyntaks, endepunkter og flaggnavn. Jeg slettet disse linjene.
- Slå sammen duplikater. Ytterligere 6 punkter gjentok hverandre med ulike formuleringer («ikke force-push», «bruk aldri
--force», «unngågit push -f»). Jeg slo dem sammen til én linje. - Legg til nye punkter. Jeg la til ting jeg hadde merket at Claude/Codex jevnlig gjorde feil den siste måneden, etter regelen «én linje per feiltype». Det resulterte i 8 nye punkter.
- Kjør en subagent for en siste gjennomgang. Jeg ba om en gjennomgang av Claude med instruksjonen «finn motsetninger, uklarheter og duplikater». Den fant tre formuleringer som kunne gjøres tydeligere. Jeg rettet dem.
Etter en time var AGENTS.md 110 linjer lang og oppdatert, og jeg kjente hver linje personlig. Det var enkelt å lage en CLAUDE.md på 30 linjer ut fra den. Codex ble merkbart mer nøye med tester etterpå — jeg mistenker at noen av de «merkelige» avgjørelsene skyldtes utdaterte instruksjoner det hadde fulgt i god tro.
Hovedprinsippene for en levende AGENTS.md:
- Hver regel svarer på en tilbakevendende feil. Hvis jeg ikke kom på en regel én eneste gang i løpet av måneden, er det ingen grunn til å beholde den.
- Skriv regler som kommandoer, ikke teori. «Bruk to mellomrom» er en regel. «Kodestilen bør være ryddig» er ikke det.
- Spesifikke regler er bedre enn generelle. «Kjør
npm run buildførgit push» er en regel. «Test endringene dine» er ikke det.
Hva fungerer definitivt IKKE med dette oppsettet?
Viktig poeng
Import av @AGENTS.md får ikke ulike verktøy til å oppføre seg likt. Hvert verktøy har sine særegenheter: Codex CLI kjenner ikke til .claude/rules/ eller hooks. Cursor har sin egen motor for autofullføring, som ikke leser CLAUDE.md mens den fullfører tekst. Copilot følger .github/copilot-instructions.md, og regler i AGENTS.md alene er ikke nok for det. Det er ikke «én fil = én atferd», men «én kilde for grunnreglene, deretter har hvert verktøy sine egne tillegg».
Her er noen ting jeg lærte på den harde måten i løpet av seks måneder med dette oppsettet:
1. Cursor-autofullføring bruker ikke AGENTS.md. Når Cursor foreslår å fullføre en linje i redigeringsprogrammet, leser det ikke AGENTS.md i sanntid — en egen, rask motor gjør jobben. Regler i AGENTS.md har bare betydning når du sender en chatforespørsel i Cursor. Å skrive «ikke bruk var, bruk const» i AGENTS.md påvirker derfor ikke autofullføringen; det må konfigureres via ESLint eller TypeScript-konfigurasjonen.
2. Claude Code-hooks i AGENTS.md fungerer ikke for Codex. Hvis .claude/settings.json har en PreToolUse-hook konfigurert til å blokkere en bestemt handling, er denne informasjonen bare nyttig for Claude. Codex kjenner ikke til hooks; for Codex er dette «verktøyet bestemmer selv». Det er fornuftig å skrive «ikke gjør X» i AGENTS.md, og «det finnes en hook som fysisk blokkerer X» i CLAUDE.md under importen.
3. Copilot og .github/copilot-instructions.md. GitHub Copilot leser sin egen fil og leser fremdeles ikke AGENTS.md særlig godt. Hvis teamet ditt bruker Copilot aktivt, legger du enten til en egen .github/copilot-instructions.md med en forkortet versjon av reglene, eller bruker Copilot Extensions som kjenner til AGENTS.md. Dette endrer seg raskt, så bildet kan være annerledes om tre til seks måneder.
4. Git sporer ikke en symbolsk lenke som en CLAUDE.md-endring. Hvis du kjører ln -s AGENTS.md CLAUDE.md og oppdaterer AGENTS.md en uke senere, viser Git bare en diff for AGENTS.md. Det er normalt, men en kollega som gjennomgår pull requesten, skjønner kanskje ikke at CLAUDE.md også er oppdatert via den symbolske lenken. Løsning: Skriv uttrykkelig i PR-beskrivelsen: «AGENTS.md er oppdatert; Claude Code ser den samme filen via den symbolske lenken.»
5. Det er vanskelig å feilsøke dype importer. Hvis AGENTS.md importerer @docs/coding-style.md, som importerer @docs/typescript.md, og en regel kommer i konflikt med en annen, er feilsøkingen vanskelig. Jeg holder importer på ett nivå (CLAUDE.md → AGENTS.md) og nøster ikke videre. Anthropic tilbyr en InstructionsLoaded-hook som logger hvilke filer som ble lastet inn — nyttig for feilsøking av lagdelte oppsett. Merk: Hooken utløses for AGENTS.md som er tatt med via import eller symbolsk lenke, men ikke for AGENTS.md som Claude Code leste selv.
Kilder
- Dokumentasjonen om Claude Code Memory – AGENTS.md-delen – når Claude Code leser AGENTS.md selv, innstillinger for Project instructions, importer og symbolske lenker, og
/init-atferd. - Dokumentasjonen om Claude Code Memory – import av flere filer – syntaksen
@path/to/file, fire nivåer dybde, relative og absolutte baner. - agents.md – Linux Foundation-standarden – den offisielle AGENTS.md-standarden og en liste over støttede verktøy.
- Dokumentasjon for Cursor Rules – hva Cursor leser (
.cursor/rules/*.mdc, AGENTS.md). - Egendefinerte instruksjoner for GitHub Copilot – formatet til
.github/copilot-instructions.md. - AGENTS.md-spesifikasjonen hos Linux Foundation – den levende spesifikasjonen.
Det komplette vibe-coding-oppsettet for en kveld: AI-klone + Second Brain + kontekstutvikling.
Bli kjent med Ailoot.
Flere detaljer
Spørsmål om denne veiledningen: Én instruksjonsfil for Claude Code, Codex og Cursor i 2026
Når bør jeg bruke import fremfor symlenke?
Bruk @AGENTS.md i CLAUDE.md når du trenger Claude-spesifikke tillegg eller kolleger bruker Windows. En symlenke gjør at begge navn viser samme innhold og kan derfor ikke inneholde en separat Claude-seksjon.
Hvordan sjekker jeg at delte instruksjoner lastes?
Kjør /memory og kontroller listen over instruksjonsfiler. Hvis CLAUDE.md eller CLAUDE.local.md hindrer direkte AGENTS.md-lasting i ditt oppsett, legg til import eller velg innstillingen som laster begge. Start så en ny økt.