Claude Code voor beginners: hoe CLAUDE.md jouw AI-assistent leert wat je echt wilt

Iedereen die voor het eerst Claude Code installeert, krijgt binnen een week dezelfde frustratie. De AI is enorm capabel, maar hij snapt jouw project niet. Hij kiest de verkeerde framework-conventies. Hij gebruikt patronen uit een andere taal. Hij verzint variabelnamen die je nooit zou gebruiken.

De oplossing is één bestand: CLAUDE.md. Het is geen magie. Het is gewoon de plek waar je Claude Code letterlijk vertelt hoe jouw project werkt, welke conventies je gebruikt, en wat je verwacht.

Deze gids is voor wie net begonnen is. Geen architectenpraat, geen advanced patterns. Wel: wat zet je erin, wat laat je weg, en de drie fouten die ik bij iedere beginner zie.

Wat is CLAUDE.md eigenlijk?

CLAUDE.md is een markdown-bestand in de root van je project. Claude Code leest dat bestand automatisch bij iedere sessie en injecteert de inhoud als context. Alles wat erin staat, weet de AI, zonder dat je het opnieuw moet uitleggen.

Vergelijk het met een onboarding-document voor een nieuwe collega. Een goede onboarding zorgt dat iemand binnen een dag productief is. Een slechte zorgt dat dezelfde vragen elke week terugkomen.

Hetzelfde geldt voor Claude. Met een goede CLAUDE.md voert hij in één keer de juiste actie uit. Zonder krijg je iedere sessie een andere interpretatie van wat jij eigenlijk wilde.

Waar zet je het bestand?

Drie locaties, in volgorde van scope:

1. Project-niveau, CLAUDE.md in de root van je project. Geldt alleen voor dat project. Gaat mee in git, dus je hele team profiteert.

2. Persoonlijk per project, .claude/CLAUDE.md in dezelfde root. Geldt alleen voor jou (gitignore'd). Voor persoonlijke voorkeuren die niet voor het hele team gelden.

3. Globaal, ~/.claude/CLAUDE.md in je home-directory. Geldt voor alle projecten op jouw machine. Voor jouw persoonlijke werkstijl.

Voor de meeste beginners is project-niveau het enige wat je nodig hebt. Begin daar.

Drie niveaus van CLAUDE.md scope: globaal, persoonlijk, project
Globaal, voor al je projecten. Persoonlijk per project, alleen voor jou. Project-niveau, voor jou en je team.

Wat moet er minimaal in?

Niet te veel. Een goede CLAUDE.md is kort en specifiek, geen tutorial-boek. Vier secties die altijd nuttig zijn:

1. Wat is dit project?

Twee zinnen. Wat doet het, voor wie, en in welke taal/framework.

markdown
# Project Context

Dit is een Next.js 14 e-commerce site voor lokale wijnhandel. Backend: Supabase (PostgreSQL).
Frontend: Tailwind CSS + shadcn/ui components. Nederlands als hoofdtaal.

2. Mapstructuur

Welke map doet wat. Claude leest de structuur zelf, maar weet niet wat de bedoeling is.

markdown
## Mapstructuur

- `app/`, Next.js routes (App Router)
- `components/`, herbruikbare UI components (gebruik shadcn/ui patronen)
- `lib/`, utilities, Supabase client, types
- `tests/`, Vitest unit tests (NOOIT inline naast source)

3. Conventies die je echt belangrijk vindt

Niet alle conventies. De drie tot vijf die je vaak moet corrigeren.

markdown
## Conventies

- Gebruik `async/await`, NOOIT `.then()` chains
- Server components by default, alleen `"use client"` als state of events nodig zijn
- Errors loggen via `lib/logger.ts`, NOOIT `console.error` in productie
- Database queries via Supabase client in `lib/db/`, niet in components direct

4. Wat NIET te doen

Soms duidelijker dan wat wel te doen. Verboden patronen.

markdown
## Verboden

- Geen `_v2` of `_new` filenames bij refactors, edit het origineel
- Geen TODO comments achterlaten, implementatie compleet of niet
- Geen mock data in productie code, alleen in `tests/fixtures/`
- Geen nieuwe dependencies zonder overleg

Dat is genoeg om te beginnen. Je breidt later uit als je merkt dat je dezelfde correctie elke week geeft.

Wat hoort er wel en niet in CLAUDE.md
Wel opnemen: project-context, mapstructuur met intentie, 3-5 conventies, verboden patronen. Niet opnemen: alles wat al uit de code afleidbaar is, framework-tutorials, persoonlijke filosofie.

De drie fouten die ik bij beginners zie

Fout 1: Te veel tegelijk willen vertellen

De eerste CLAUDE.md van veel beginners wordt 800 regels lang. Architectuur-uitleg, complete framework-handleidingen, persoonlijke filosofie over clean code.

Dat werkt niet. Claude moet die 800 regels iedere sessie verwerken, dat kost tokens en context-ruimte. Bovendien: hoe meer je vertelt, hoe minder Claude weegt wat echt belangrijk is.

Regel: als je CLAUDE.md langer is dan 200 regels, snijd. Veel meer dan dat is bijna altijd duplicatie van wat al in de code zelf zichtbaar is.

Fout 2: Vertellen wat al duidelijk is uit de code

markdown
# Slecht

- Dit project gebruikt React
- We hebben Tailwind CSS geïnstalleerd
- De source code staat in src/

Claude leest package.json. Hij ziet tailwind.config.js. Hij ziet de mapstructuur. Dat hoef je niet te vertellen.

Regel: schrijf alleen op wat je niet uit de code kunt afleiden. Conventies, beslissingen, en context.

Fout 3: Vergeten te updaten

CLAUDE.md schrijven is geen eenmalige actie. Iedere keer dat je een correctie geeft die voor iedere toekomstige sessie zou moeten gelden, leg die vast.

Een goede workflow is: één keer per week kijk je naar je sessies. Welke correcties heb je vaak gegeven? Die gaan in CLAUDE.md.

Als je dat niet doet, blijft Claude dezelfde fouten maken, niet omdat hij dom is, maar omdat jij hem niet hebt geüpdatet.

Voorbeeld: een complete (kleine) CLAUDE.md

Hier is een werkbaar voorbeeld voor een fictief Next.js project. ~50 regels. Dat is genoeg.

markdown
# Wijnhandel Online, Project Context

Next.js 14 (App Router) e-commerce voor lokale wijnhandel. Supabase backend. Tailwind + shadcn/ui.
Nederlandse hoofdtaal. Gericht op MKB-niveau, niet enterprise.

## Mapstructuur

- `app/`, Next.js routes
- `components/`, UI components, shadcn/ui patroon
- `lib/db/`, Supabase queries
- `lib/utils/`, pure utilities
- `tests/`, Vitest tests, NOOIT naast source

## Conventies

- `async/await`, geen `.then()` chains
- Server components default, `"use client"` alleen waar nodig
- Errors via `lib/logger.ts`, geen `console.error`
- Database access via `lib/db/`, nooit direct in components
- Component naming: PascalCase voor React components, kebab-case voor file names

## Stijl

- Nederlandstalige variabelnamen waar het de leesbaarheid helpt
  (bijv. `wijn` ipv `wine` in domain code, maar `userId` in technische context)
- Korte functies (< 30 regels) of opsplitsen
- Geen abbreviations in publieke API ("getCustomer", niet "getCust")

## Verboden

- Geen `_v2` filenames, edit origineel
- Geen TODO comments, implementeer of laat weg
- Geen mock data buiten `tests/fixtures/`
- Geen nieuwe dependencies zonder overleg

Dat is het. Geen 800 regels. Geen architectuurdiagram. Wel: precies de informatie die Claude nodig heeft om in jouw project nuttig te zijn.

Voor power-users: split je CLAUDE.md via @import

Zodra je CLAUDE.md over de 100 regels gaat, wordt hij onhandig. Je kunt 'm in dat geval opsplitsen door er andere bestanden in te laten linken via de @import syntax. Mijn globale ~/.claude/CLAUDE.md is bijvoorbeeld maar ~10 regels:

javascript
@~/.claude/profile.md

## Implementation Standards
- No TODO comments, complete all implementations
- No mock objects or stub implementations
- Reports in claudedocs/, tests in tests/, scripts in scripts/

De @import-regel laadt automatisch profile.md met mijn identiteit, portfolio, en cross-project voorkeuren. Dat zorgt dat Claude in elk project weet wie ik ben, zonder dat ik het hoef te herhalen.

De volledige walkthrough van die gelaagde architectuur, met globale identiteit plus project-context plus per-project memory, staat in mijn complete-setup blog van 30 mei. Voor nu: focus op je project-niveau CLAUDE.md. De gelaagde aanpak is nuttig pas wanneer je meerdere projecten parallel hebt lopen.

Wat doe je hierna?

Drie dingen, op volgorde:

  1. Maak je CLAUDE.md, nu, in je actieve project. Begin met het voorbeeld hierboven, pas het aan. 30 minuten werk.
  2. Test het. Vraag Claude in een nieuwe sessie iets te doen wat eerder fout ging. Als het nu klopt: het werkt. Als niet: scherp CLAUDE.md aan.
  3. Lees de vervolgblog over rules.md, de stap waarbij je je codeerstandaarden afdwingt op een dieper niveau dan CLAUDE.md aankan.

Volgende week ga ik dieper op rules.md, daarna hooks, state management, en context engineering. Allemaal voor AI peers en hobbyisten, niet voor enterprise architects.

Veelgestelde vragen

Samenvatting

CLAUDE.md is geen magisch bestand, het is gewoon de plek waar je een AI-assistent vertelt hoe jouw project werkt. Houd het kort, specifiek, en update het wekelijks. Vermijd het verleiden om alles op te schrijven; de meeste informatie staat al in de code.

Doe het deze week. Het is letterlijk 30 minuten werk en bespaart je over een maand uren aan repetitieve correcties.

Lees ook: De 10 Claude Code features die elke developer in 2026 zou moeten gebruiken, de complete roadmap voor wie net begint.

Voor teams die hun complete Claude Code setup willen professionaliseren: ik help er bij op AI-architectuur.


Vragen over Claude Code, AI-projecten, of wil je je eigen setup bespreken? Volg me op LinkedIn, daar deel ik wekelijks build-in-public updates over hoe ik mijn eigen AI-systeem inricht.


Bronnen

  1. Claude Code Documentation, CLAUDE.md
  2. Claude Code Configuratie: CLAUDE.md, rules en skills
  3. Claude Code rules en memory setup

Vincent van Deth

AI Strategy & Architecture

Vincent van Deth bouwt productiesystemen met AI voor het MKB. Hij is de maker van VNX, een multi-agent LLM orchestrator, en helpt teams betrouwbare AI-automatisering te shippen — zonder bullshit.

Reacties

Je e-mailadres wordt niet gepubliceerd. Reacties worden beoordeeld voor plaatsing.

Reacties laden...