Niveaus voor gebruiker, project en directory
Waar elke CLAUDE.md staat en op wie deze van toepassing is
Niveaus voor gebruiker, project en directory is een gratis Claude Architect-les op CoddyKit. Dit is les 1 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Claude Architect. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Claude Architect bevat in totaal 4 lessen.
Drie plaatsen waar een CLAUDE.md kan staan
Claude Code leest geheugen op drie niveaus, en elk niveau beantwoordt een andere vraag: op wie is deze regel van toepassing?
- Gebruikersniveau —
~/.claude/CLAUDE.md: je persoonlijke voorkeuren, alleen op jouw computer. - Projectniveau —
./CLAUDE.mdof.claude/CLAUDE.md: via versiebeheer gedeeld met het hele team. - Mapniveau — een
CLAUDE.mdin een submap: alleen van toepassing op die substructuur.
Weten in welk bestand een regel thuishoort, is een kernvaardigheid van een Claude Certified Architect. Zet je de regel op de verkeerde plek, dan missen je teamleden die of lekken je persoonlijke gewoonten door naar de workflow van iedereen.
Gebruikersniveau — persoonlijk, NIET gedeeld
Het bestand op gebruikersniveau in ~/.claude/CLAUDE.md staat in je basismap. Het is van toepassing op elk project dat je op deze machine opent, maar het reist met jou mee, niet met de repository.
Belangrijk: het wordt NIET gedeeld via versiebeheer. Een nieuwe collega die de repository kloont, zal het nooit zien. Het is dus de juiste plek voor persoonlijke voorkeuren: de stijl van commitberichten die je verkiest, hoe uitgebreid je antwoorden wilt of welke shell-aliassen je graag gebruikt.
Het is de verkeerde plek voor alles waar het team het over eens moet zijn — coderingsstandaarden, buildopdrachten en beveiligingsregels.
# ~/.claude/CLAUDE.md (personal, machine-local, never committed)
## My preferences
- Keep explanations short; show the command, not a paragraph.
- Prefer `rg` over `grep` and `fd` over `find` on my machine.
- Use Conventional Commits for messages.Projectniveau — gedeeld via VCS
Het bestand op projectniveau staat in de hoofdmap van de repository als ./CLAUDE.md (of .claude/CLAUDE.md). Omdat het in de repository staat, wordt het vastgelegd en gedeeld via versiebeheer.
Dat is precies wat je wilt voor regels waarop het hele team vertrouwt: de buildopdracht, het testframework, architectuurconventies, de mappenstructuur en alles wat een nieuwe bijdrager vanaf dag één nodig heeft.
Vuistregel: als een nieuwe kloon zonder dit bestand niet zou werken, hoort het in de CLAUDE.md op projectniveau — niet in je persoonlijke gebruikersbestand.
# ./CLAUDE.md (repo root — committed, shared by everyone)
## Build & Test
- Build: yarn build
- Test: yarn test --runInBand
- Lint must pass before every commit.
## Conventions
- NestJS modules under src/<feature>/.
- All DB access goes through the repository layer, never inline SQL.Mapniveau — beperkt tot een deelstructuur
Een CLAUDE.md in een submap heeft een mappenbereik: het is alleen van toepassing wanneer Claude binnen die deelstructuur werkt. Zo blijven specifieke, lokale regels dicht bij de code waarop ze van toepassing zijn.
Voorbeeld: een frontend/CLAUDE.md kan conventies voor React/Tailwind bevatten die niet zinvol zijn voor de backend, terwijl services/payments/CLAUDE.md regels kan bevatten die alleen relevant zijn voor factureringscode.
Bestanden op mapniveau worden nog steeds vastgelegd (ze staan in de repository), dus ze worden gedeeld — maar hun bereik is de map, niet het hele project.
# frontend/CLAUDE.md (scoped to the frontend subtree)
## UI conventions (apply only under frontend/)
- Components are function components with hooks; no class components.
- Style with Tailwind utility classes; avoid inline style objects.
- Co-locate tests as Component.test.tsx next to the component.Hoe de niveaus worden gecombineerd
De niveaus leveren aanvullende context en sluiten elkaar niet uit. Wanneer je in een submap werkt, kan Claude het gebruikersbestand, het projectbestand en het mappenbestand samen gebruiken.
Zie het als concentrische bereiken:
- Gebruiker — grootste bereik (elk project), kleinste doelgroep (alleen jij).
- Project — de hele repository, het hele team.
- Map — één deelstructuur, het hele team.
De vraag is dus nooit alleen: "hoe specifiek is deze regel?" maar ook: "wie moet hem zien — ik of iedereen?" De doelgroep bepaalt gebruiker of project; het bereik bepaalt project of map.
De klassieke fout: teamregels in het gebruikersbestand
Het meest voorkomende ant patroon: een regel waar iedereen van afhankelijk is in ~/.claude/CLAUDE.md zetten. Het werkt perfect voor jou — dus de leemte blijft onzichtbaar — maar omdat het gebruikersbestand nooit via VCS wordt gedeeld, missen nieuwe collega's het volledig.
Symptomen: Claude volgt de conventie op jouw machine en negeert haar op die van een collega, en niemand begrijpt waarom. De oplossing is altijd hetzelfde: verplaats gedeelde regels naar beneden, naar de CLAUDE.md op projectniveau (of mapniveau), zodat ze met de repository worden meegeleverd.
Modulariseren met @path-imports
Een CLAUDE.md hoeft geen gigantisch bestand te zijn. Je kunt andere bestanden toevoegen met @path-imports, zodat elk bestand gericht en leesbaar blijft.
Een projectbestand kan bijvoorbeeld een gedeeld standaardenbestand importeren in plaats van honderden regels inline op te nemen. Zo blijft de hiërarchie eenvoudiger te onderhouden en kun je dezelfde standaarden in meerdere bestanden hergebruiken.
# ./CLAUDE.md (project root)
## Engineering standards
@./standards/coding-style.md
@./standards/security.md
## Build
- Build: yarn buildRegels met padbereik in .claude/rules/
Een monolithische CLAUDE.md wordt bij elke taak in de context geladen — ook wanneer het grootste deel niet relevant is — en verspilt tokens. Een netter patroon voor specifieke regels bestaat uit bestanden in .claude/rules/ met YAML-frontmatter.
Elk regelbestand declareert een patroon in paths en wordt alleen geladen wanneer je overeenkomende bestanden bewerkt. Zo krijg je de precisie van regels op mapniveau en bespaar je context, omdat regels die niet overeenkomen met het huidige bestand nooit worden ingeladen.
# .claude/rules/migrations.md
---
paths:
- "db/migrations/**"
---
- Every migration must be reversible (provide a down step).
- Never edit a migration that has already shipped; add a new one.Geheugen bewerken: /memory en /init
Je hoeft deze bestanden niet handmatig in een externe editor te bewerken. In Claude Code opent en bewerkt de opdracht /memory het CLAUDE.md-geheugen, en wijzigingen blijven behouden tussen sessies.
Voor een gloednieuwe repository initialiseert /init een CLAUDE.md op projectniveau door de codebase te documenteren. Zo krijg je een zinvol startpunt dat je vervolgens kunt verfijnen.
De keuze voor welk bestand /memory schrijft, komt nog steeds neer op dezelfde beslissing: persoonlijk (gebruiker) of gedeeld (project of map).
# In an interactive Claude Code session:
/init # generate a project-level CLAUDE.md from the codebase
/memory # open and edit CLAUDE.md; edits persist across sessionsSkills en opdrachten volgen dezelfde scheiding
Deze scheiding tussen gebruiker en project is niet uniek voor CLAUDE.md — het is een consistent patroon in Claude Code. Skills en opdrachten gebruiken precies dezelfde twee bereiken:
- Projectbereik —
.claude/skills/en.claude/commands/in de repository worden gedeeld via VCS. - Gebruikersbereik —
~/.claude/skills/is persoonlijk.
Let op: .claude/commands/ is de oudere vorm en .claude/skills/ de huidige, maar de regel voor het bereik is identiek: repository = team, basismap = jij. Leer de scheiding één keer en je kunt haar overal toepassen.
Houd geheimen uit vastgelegde bestanden
Omdat bestanden op project- en mapniveau in versiebeheer worden vastgelegd, moet je ze behandelen als openbare code: zet er nooit geheimen in. Dezelfde discipline geldt voor een projectgebonden .mcp.json (gedeeld in VCS) tegenover het persoonlijke ~/.claude.json.
Verwijs voor tokens en sleutels naar omgevingsvariabelen — bijvoorbeeld ${GITHUB_TOKEN} — in plaats van de ruwe waarde te plakken. Het gedeelde bestand vermeldt welke variabele moet worden gebruikt; het echte geheim blijft in de omgeving, buiten de repository en buiten CLAUDE.md.
// .mcp.json (committed — references env vars, never raw secrets)
{
"mcpServers": {
"github": {
"command": "github-mcp",
"env": { "GITHUB_TOKEN": "${GITHUB_TOKEN}" }
}
}
}Korte controle: waar hoort de regel?
Je team is het eens over een buildopdracht en een testframework dat elke bijdrager moet gebruiken. Een nieuwe ontwikkelaar heeft de repository net gekloond. Waar moet deze regel staan zodat Claude Code hem vanaf dag één voor het hele team toepast?
Samenvatting: doelgroep en bereik bepalen het niveau
Kies het niveau door twee vragen te beantwoorden — wie en waar:
- Gebruiker (
~/.claude/CLAUDE.md): persoonlijk, elk project, NIET gedeeld via VCS — nieuwe collega's missen het. Gebruik dit alleen voor persoonlijke voorkeuren. - Project (
./CLAUDE.md): gedeeld via VCS, het hele team, de hele repository. De plek voor buildopdrachten en conventies die iedereen nodig heeft. - Map (submap
CLAUDE.md): gedeeld via VCS, maar beperkt tot één deelstructuur.
Houd bestanden compact met @path-imports en laad specifieke regels indien nodig via .claude/rules/ met paths-frontmatter. Leg nooit geheimen vast — verwijs naar omgevingsvariabelen zoals ${GITHUB_TOKEN}. De grootste valkuil is teamregels in je persoonlijke gebruikersbestand zetten, waar alle anderen ze stilletjes nooit zullen zien.
Leer Python met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 26
- Lessen
- 104
Veelgestelde vragen
Is de les “Niveaus voor gebruiker, project en directory” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad Claude Architect, waaronder “Niveaus voor gebruiker, project en directory”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Claude Architect bevat in totaal 4 lessen.
Wat leer ik in “Niveaus voor gebruiker, project en directory”?
Waar elke CLAUDE.md staat en op wie deze van toepassing is Je oefent met Claude Architect door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Claude Architect te beginnen?
Ervaring vooraf is niet nodig. Claude Architect op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.
Hoe lang duurt de les “Niveaus voor gebruiker, project en directory”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Claude Architect?
Ja. Elke les over Claude Architect bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Niveaus voor gebruiker, project en directory
- De syntaxis voor @path-imports
- .claude/rules/ met frontmatter-paden
- Monolithische versus modulaire regels