Claude Code context management: de complete gids
Claude Code is krachtig, maar context is eindig. Hier leer je de tools: /compact, skills, hooks, agents, en hoe je ze combineert tot een setup die schaalt.
Claude Code is meer dan een chatbot in je terminal. Het is een framework voor AI-assisted development. Maar dat framework werkt alleen als je begrijpt hoe context management werkt.
In context engineering besprak ik de theorie. Nu de praktijk: de concrete tools die Claude Code biedt, en hoe je ze combineert.
Het context probleem
Je begint een sessie. Je stelt vragen, Claude leest bestanden, voert tools uit. Alles gaat goed.
Naarmate je context vult, gebeuren er twee dingen:
1. Context rot
Context rot is het fenomeen waarbij LLM-performance afneemt naarmate de context groeit, zelfs als je technisch nog ruimte hebt. Hoe langer de context, hoe minder accuraat het model.
Dit komt door hoe attention werkt: het model vergelijkt elke nieuwe token met alle vorige tokens. Bij een volle context wordt die attention "uitgerekt". Informatie in het midden van je gesprek krijgt minder aandacht dan het begin en einde.
Je merkt het aan:
- Claude vergeet details van eerder in het gesprek
- Antwoorden worden vager
- Meer hallucinations
- Het herhaalt instructies die je al gaf
2. Context vol
Op een gegeven moment zit je context gewoon vol. 200K tokens bereikt. Dan kan Claude helemaal niks meer. Geen vragen beantwoorden, geen tools uitvoeren. Sessie voorbij.
De /compact command
Claude Code heeft /compact als oplossing. Dit comprimeert je gesprek door het te samenvatten, zodat je door kunt.
Auto-compact: standaard aan
Standaard reserveert Claude Code ruimte voor auto-compact. Wanneer je context bijna vol is, comprimeert het automatisch. Klinkt handig, maar:
- Je verliest ~33% van je context window aan die buffer
- Elke compactie verliest informatie, vaak precies de technische details die ertoe doen
- Je hebt geen controle over wat bewaard blijft
Waarom ik auto-compact uit heb
Ik heb auto-compact uitgezet. Met een goede CLAUDE.md, skills en agents beheer ik mijn context zelf. Subagents voor research, skills die alleen laden wanneer nodig, state in bestanden via het Hydration Pattern.
Het resultaat: ik gebruik de volle 200K, en als die vol zit start ik een nieuwe sessie met goede context uit mijn spec files.
Hoe je auto-compact uitzet
Via /config in Claude Code:
/config
Navigeer naar de auto-compact setting en zet die uit. Vanaf dan heb je de volle context window, maar ook de verantwoordelijkheid om het zelf te managen.
Wanneer wel /compact gebruiken?
Als je auto-compact uit hebt, kun je nog steeds handmatig compacten:
/compact
Doe dit op strategische momenten:
- Voordat je aan een nieuwe taak begint
- Wanneer je merkt dat Claude traag wordt
- Met een custom focus:
/compact Focus op de auth refactor
Het verschil: jij bepaalt wanneer en wat, niet het systeem.
CLAUDE.md: persistente instructies
CLAUDE.md is je project-specifieke configuratie. Claude leest dit aan het begin van elke sessie.
Waar het woont:
./CLAUDE.md- project root (in version control)./.claude/CLAUDE.md- project-specifiek (niet in version control)~/.claude/CLAUDE.md- globaal, voor alle projecten
Wat erin hoort:
- Projectconventies (naming, structuur)
- Tech stack en versies
- Wat Claude wel/niet mag doen
- Links naar documentatie
Wat er NIET in hoort:
- Alles wat je niet bij elke interactie nodig hebt
- Uitgebreide tutorials of uitleg
- Content die in aparte files kan
Houd het lean. Elke regel kost tokens bij elke interactie. Meer hierover in CLAUDE.md mastery.
Skills: context on-demand
Skills zijn de oplossing voor "ik wil dit alleen laden wanneer relevant".
Een skill is een Markdown bestand met instructies die Claude laadt wanneer nodig. In plaats van alles in CLAUDE.md te proppen, maak je gerichte skills.
Waar ze wonen:
~/.claude/skills/<naam>/SKILL.md- globaal./.claude/skills/<naam>/SKILL.md- project-specifiek
Voorbeeld structuur:
~/.claude/skills/
├── laravel/
│ ├── SKILL.md
│ ├── traditional.md
│ └── multitenancy.md
├── review/
│ └── SKILL.md
└── deploy/
└── SKILL.md
De frontmatter bepaalt wanneer de skill triggert:
---
name: laravel
description: Laravel development. USE WHEN writing Laravel code.
skills: php # Laadt ook de php skill
---
Skills kunnen andere skills laden via de skills: key. Zo bouw je een hiërarchie zonder duplicatie. Meer hierover in skills deep dive.
Slash commands: directe acties
Slash commands zijn shortcuts voor veelgebruikte taken.
Waar ze wonen:
~/.claude/commands/<naam>.md- globaal./.claude/commands/<naam>.md- project-specifiek
Verschil met skills:
- Commands: jij roept ze expliciet aan met
/naam - Skills: Claude laadt ze automatisch wanneer relevant
Voorbeeld command (~/.claude/commands/pr.md):
---
description: Create a pull request for current changes
---
Create a PR for the current branch:
1. Check git status for uncommitted changes
2. Create descriptive PR title and body
3. Use gh cli to create the PR
4. Return the PR URL
Nu kun je /pr typen en Claude weet wat te doen.
Namespacing werkt met subdirectories: .claude/commands/frontend/component.md wordt /frontend:component.
Hooks: automatische acties
Hooks zijn shell commands die automatisch draaien op bepaalde momenten.
Configureer ze in .claude/settings.json:
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write|Edit",
"hooks": ["./vendor/bin/pint $CLAUDE_FILE_PATH"]
}
]
}
}
Dit draait Pint automatisch na elke file edit. Geen "vergeet de formatting" meer.
Hook lifecycle events:
- PreToolUse: voor een tool draait (kan blokkeren)
- PostToolUse: na een tool (voor cleanup/formatting)
- Stop: wanneer Claude stopt
- SubagentStop: wanneer een subagent klaar is
Use cases:
- Auto-formatting na edits
- Notificaties wanneer Claude klaar is
- Logging voor compliance
- Blokkeren van edits aan bepaalde files
Zie de hooks reference voor alle opties.
Subagents: geïsoleerde context
Subagents zijn de nucleaire optie voor context management. Een subagent heeft een eigen context window, eigen tools, eigen instructies.
Waarom subagents:
- Complexe taken die veel context nodig hebben
- Taken die je hoofdcontext niet moeten vervuilen
- Specialisatie (een "tester" agent, een "reviewer" agent)
Definieer ze in .claude/agents/:
---
name: tester
description: Runs tests and reports failures.
tools: Read, Glob, Bash, Task
model: haiku
---
# Tester Agent
Run tests, report results.
## Rules
- ONLY run test commands
- NEVER fix code yourself
- Report failures with full context
De frontmatter definieert:
- tools: welke tools de agent mag gebruiken
- model: welk LLM (haiku voor snelle taken, opus voor complexe)
- skills: welke skills automatisch laden
Subagents roep je aan via de Task tool. Ze draaien, doen hun werk, en returnen alleen het resultaat. Je hoofdcontext blijft schoon.
Mijn setup (James)
In mijn eigen framework, James, combineer ik alles:
CLAUDE.md (lean, alleen essentials):
- Versie-info (PHP 8.5, Laravel 12)
- Pointer naar
.docs/README.md - Lijst van beschikbare skills en agents
Skills (20+):
laravel- Laravel patterns, laadtphpskilldocs- Documentatie managementfeature- Feature workflow met Linear integratie- Domain-specifieke skills per framework
Agents (7):
tester- Draait tests, spawnt fixer bij failuresfixer- Debugt en fixt (max 2 attempts)researcher- Verzamelt context voor implementatiedocumenter- Update.docs/na significante changescode-reviewer- Review voor security en logic issueslarastan- Static analysisvendor-docs-updater- Update vendor documentatie
Hooks:
- Session start hook voor context setup
Het resultaat: Claude weet wat het moet weten, wanneer het dat moet weten, zonder context te verspillen.
Praktische tips
- Start lean, voeg toe wanneer nodig
Begin met een minimale CLAUDE.md. Voeg skills toe als je patronen ziet. - Gebruik subagents voor research
"Onderzoek hoe X werkt" → spawn een subagent. Resultaat komt terug, context blijft schoon. - Hooks voor discipline
Als je altijd vergeet Pint te draaien: maak een hook. Automatiseer wat je vergeet. - Commands voor workflows
Taken die je vaak doet → maak een command./pr,/deploy,/review. - Skills voor domeinkennis
Framework-specifieke kennis → skill. Wordt alleen geladen wanneer relevant.
Volgende stap
Dit was een overzicht van Claude Code's context tools. Wil je dieper op specifieke onderdelen?
- CLAUDE.md mastery - Hoe je CLAUDE.md optimaal inricht
- Skills & subagents - Deep dive in skills en agents
- James framework - Mijn complete setup
In mijn AI trainingen werk je hands-on met deze tools. Of bekijk hoe ik ze inzet bij AI implementatie projecten.
Vragen? Neem contact op.