Terug naar blog
AI in de praktijk 7 min leestijd

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 context management: de complete gids

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, laadt php skill
  • docs - Documentatie management
  • feature - Feature workflow met Linear integratie
  • Domain-specifieke skills per framework

Agents (7):

  • tester - Draait tests, spawnt fixer bij failures
  • fixer - Debugt en fixt (max 2 attempts)
  • researcher - Verzamelt context voor implementatie
  • documenter - Update .docs/ na significante changes
  • code-reviewer - Review voor security en logic issues
  • larastan - Static analysis
  • vendor-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

  1. Start lean, voeg toe wanneer nodig
    Begin met een minimale CLAUDE.md. Voeg skills toe als je patronen ziet.
  2. Gebruik subagents voor research
    "Onderzoek hoe X werkt" → spawn een subagent. Resultaat komt terug, context blijft schoon.
  3. Hooks voor discipline
    Als je altijd vergeet Pint te draaien: maak een hook. Automatiseer wat je vergeet.
  4. Commands voor workflows
    Taken die je vaak doet → maak een command. /pr, /deploy, /review.
  5. 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?

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.

Wil je dit soort oplossingen in je eigen organisatie?

Vragen over dit onderwerp?

Ik denk graag mee over hoe dit toepasbaar is voor jouw situatie.

Deze site gebruikt cookies voor analytics. Privacybeleid