Draai claude doctor vanuit je shell en je krijgt een keurig rapportje. Versie, installatiemethode, platform, update-kanaal. Dat van mij eindigt met "No installation issues found". Twaalf regels, alles groen, niets te doen.
Draai daarna /doctor in een sessie en je krijgt tien checks. Twee daarvan kijken of Claude Code goed geïnstalleerd staat en up-to-date is. De andere acht kijken naar wat jij ermee hebt gedaan.
Juist dat verschil maakt het interessant. Het commando heeft zijn naam gehouden en is stilletjes iets heel anders gaan doen.
Wat /doctor nu daadwerkelijk controleert
/doctor (alias /checkup) was tot 2.1.203 een CLI-subcommando en is sindsdien een meegeleverde skill. Hij leest je settings, je skills, je MCP-servers, je plugins, je hooks en je geheugenbestanden, en stelt daarna wijzigingen voor. Dit is de complete lijst, rechtstreeks uit de skill:
| # | Check |
|---|---|
| 0 | Gezondheid van je setup: installatie, settings, agent-definities |
| 1 | Ongebruikte skills, MCP-servers en plugins |
| 2 | Lokale CLAUDE.md ontdubbelen en tegenstrijdigheden vinden |
| 3 | Afleidbare inhoud uit ingecheckte CLAUDE.md-bestanden halen |
| 4 | Altijd geladen CLAUDE.md-inhoud omzetten naar lazy loading |
| 5 | Trage hooks |
| 6 | Context-zware extensies |
| 7 | Claude Code-versie |
| 8 | Auto mode als standaard permission mode |
| 9 | Vaak geweigerde read-only commando's vooraf goedkeuren |
Check 0 en 7 zijn de oude installatiecheck. Check 1 tot en met 6 zijn een contextaudit. Check 8 en 9 zijn weer iets anders, daar kom ik zo op terug.
Het rekenwerk in check 6 is concreet genoeg om er iets aan te hebben: hij schat per onderdeel hoeveel context permanent bezet is, splitst dat uit per geheugenbestand, en zet je lijst met skills en commando's af tegen een budget van ongeveer 1% van het venster. Hij zegt er ook bij dat het schattingen zijn op basis van wat er op schijf staat, en verwijst je naar /context voor de echte meting. Zoveel eerlijkheid had ik niet verwacht van een tool die je zijn eigen opruimwerk verkoopt.
Waarom dit nu pas komt
Sonnet 5 kwam op 30 juni uit met een venster van 1M tokens. Opus 5 volgde op 24 juli, met hetzelfde venster. In Claude Code zijn ze allebei de standaard voor hun tier.
Toen het venster nog 200k was, meldde de vervuiling zich vanzelf. Je installeerde elf plugins en een CLAUDE.md van 400 regels, en halverwege de middag zat je naar de compaction-waarschuwing te kijken en te vloeken. Die muur was irritant, en die muur was ook feedback.
Bij een miljoen tokens loopt bijna niemand er nog tegenaan. De vervuiling is er nog steeds, alleen krijg je er geen foutmelding meer bij. Je agent wordt een beetje vager, start iets trager op, en volgt iets vaker die verouderde instructie die al drie sessies niet meer klopt. Niets in de interface waarschuwt je, want er ging niets stuk.
Dus bouwde Anthropic er een linter voor. Dat zijn check 1 tot en met 6: een linter voor rommel die geen symptoom meer heeft. Mijn stuk over de token-belasting ging over tooling die je meer context kost dan ze oplevert, en hier bouwt de leverancier zelf de meter die me gelijk geeft.
De check die in je geheugen snijdt
Bij check 3 wil je even stilstaan. Die stelt voor je ingecheckte CLAUDE.md in te korten door alles weg te halen wat Claude ook uit de codebase kan afleiden. Mappenstructuren, dependency-lijsten, architectuuroverzichten: weg, want dat kan de agent gewoon lezen. Valkuilen, het waarom achter keuzes en conventies die afwijken van de standaardinstellingen: die blijven staan.
Die scheidslijn klopt precies. Ik heb hetzelfde betoogd over verouderd geheugen, waar het bestand dat je mappenstructuur beschrijft nu net het bestand is dat zes weken later tegen je liegt.
Alleen: wie trekt die lijn? "Inhoud die Claude uit de codebase kan afleiden" betekent dat het model zijn eigen redeneervermogen beoordeelt, en zelfbeoordeling is nu juist waar deze dingen structureel slecht in zijn.
Hij zal vol overtuiging voorstellen die ene regel te schrappen die overbodig leek en in werkelijkheid dragend was, de regel die voorkomt dat hij in deze repo elke keer weer dezelfde fout maakt. Het voorstel klinkt volstrekt redelijk. En jij weet niet meer waarom die regel er staat, want je hebt hem er acht maanden geleden in gezet, na het derde incident.
/doctor laat eerst zijn bevindingen zien en vraagt om bevestiging voor hij iets aanpast, dus je krijgt een diff. Lees die als een pull request van een snelle, gretige junior die deze repo nog nooit heeft gezien, want dat is precies wat het is. De regel dat je nooit code shipt die je niet snapt geldt ook voor je geheugenbestand. Dat bestand is configuratie, en configuratie heeft per regel meer impact dan code.
Check 8 en 9 hebben een mening
Check 8 stelt voor om auto mode je standaard permission mode te maken, op gebruikersniveau, voor al je projecten. Check 9 zoekt read-only commando's die je steeds weigert en biedt aan ze vooraf goed te keuren.
Allebei zijn ze te verdedigen. Check 9 is gewoon goed: als je veertig keer nee hebt gezegd tegen git status, kijk je allang over die prompt heen. En de skill gaat zorgvuldig om met check 8, slaat hem over als beleid of projectinstellingen een andere mode vastzetten, en vermeldt dat de CLI netjes terugvalt als auto mode niet beschikbaar blijkt.
Maar kijk even wat hier gebeurt. Een tool die "doctor" heet, adviseert nu ruimere permissies, als onderdeel van een gezondheidscheck. Die verpakking is niet onschuldig, want niemand gaat in discussie met een diagnose.
Wil je auto mode, kies er dan bewust voor, met het permissiemodel in je hoofd, en niet omdat een groene checklist het aanbood tussen een rapport over trage hooks en een versie-update door.
Wat me verraste
Ergens in check 1 staat een instructie die de skill zichzelf oplegt: rapporteer nooit tokenkosten voor MCP-tools die deferred zijn, en adviseer nooit om een MCP-server uit te zetten "om context te besparen" als zijn tools deferred zijn.
MCP-toolschema's zitten tegenwoordig standaard achter een zoektool. Alleen de naam staat permanent in context, het schema wordt op afroep opgehaald. Het gangbare advies om je MCP-servers eruit te gooien omdat ze je venster opvreten, is daarmee grotendeels achterhaald.
De skill weet dat en weigert de eer op te strijken voor een besparing die niet plaatsvindt. Hij stelt nog steeds voor om servers uit te zetten die je nooit aanroept, maar dan eerlijk gebracht als opruimen: gewoon één ding minder om op in te loggen en te onderhouden.
Een opruimtool die niet overdrijft wat het opruimen oplevert, zegt iets goeds over de rest.
Hoe ik hem gebruik
claude doctor vanuit de shell is read-only. Draai hem wanneer er iets niet klopt aan de installatie zelf.
/doctor in een sessie is een agent met schrijfrechten op je configuratie. Ik draai hem ongeveer maandelijks, aan het begin van een sessie, als ik nog het geduld heb om een diff te lezen. Aan het eind van een lange dag is die checklist het enige dat nog tussen mij en een merge staat, en dan wuif ik alles door.
Zonder veel nadenken accepteren: versie-updates, meldingen over trage hooks, het ontdubbelen van lokale geheugenbestanden ten opzichte van de ingecheckte, plus servers die je echt nooit hebt aangeroepen. Regel voor regel lezen: alles wat aan een ingecheckte CLAUDE.md komt, en allebei de permissievoorstellen.
Het commando dat je vroeger vertelde dat de tool kapot was, vertelt je nu vooral dat jij het bent. Tien checks, en acht daarvan gaan over keuzes die jij hebt gemaakt. Dat rapport is vervelender om te krijgen, en een stuk nuttiger.