
/skill-doctor listet die in deiner Sitzung geladenen Skills auf, die nie aufgerufen wurden, und zeigt, was sie an Kontext kosten. Der Bericht öffnet sich im Tab Stats des /plugin-Managers oder wird mit -p als Text ausgegeben, und setzt Claude Code 2.1.252 oder neuer voraus. Gekürzt wird anschließend mit /skills und der Leertaste, oder über /plugin für Skills, die von einem Plugin stammen.
Du startest Claude Code, hast noch nichts verlangt, und ein Teil des Kontexts ist schon weg. Auf der hier gemessenen Installation sind 117 persönliche Skills geladen, 108 wurden nie aufgerufen, und ihr Listing geht in jeder Gesprächsrunde erneut mit.
Was /skill-doctor genau zeigt
Der Befehl kam mit Claude Code 2.1.261, veröffentlicht am 4. September 2026. Die Release Notes bringen es in einer Zeile auf den Punkt: Er zeigt, welche geladenen Skills ungenutzt bleiben und was sie an Kontext kosten, damit du sie ausdünnen kannst.
Die Dokumentation grenzt den Umfang genau ab. Der Bericht deckt die Skills deiner Sitzung ab, mit Ausnahme der mit Claude Code gebündelten Skills und der Enterprise-Skills. Er zeigt an, welche nie aufgerufen wurden, sagt, wo du sie deaktivierst, und listet obendrein die Plugins auf, die du zuletzt nicht genutzt hast. In einer interaktiven Sitzung öffnet er sich im Tab Stats des /plugin-Managers, im nicht interaktiven Modus, mit -p, gibt Claude Code ihn als Text aus.
Zwei Voraussetzungen, bevor du es ausprobierst. Du brauchst Claude Code 2.1.252 oder neuer. Und über Remote Control, auf dem Smartphone oder im Browser, verweigert der Befehl die Antwort: Er liefert Skill usage reports are not available on this connection. Starte ihn im Terminal der Maschine, die die Sitzung hostet.
Warum kostet ein nie aufgerufener Skill trotzdem Kontext?
Weil ein Skill in drei Stufen lädt. Der offene Standard Agent Skills nennt das progressive Offenlegung: Beim Start liest der Agent nur Name und Beschreibung jedes Skills, wenn eine Aufgabe zu dieser Beschreibung passt, liest er den Hauptteil der SKILL.md, und die Begleitdateien öffnet er erst bei Bedarf. Der Mechanismus ist in unserem Leitfaden zum SKILL.md-Format beschrieben.
Die erste Stufe dagegen wird bei jeder Gesprächsrunde bezahlt. Die Claude-Code-Dokumentation ist eindeutig: Jeder Skill im Listing schlägt bei jeder Runde auf den Kontext, ob Claude ihn nutzt oder nicht. Und dieses Listing hat ein Zeichenbudget von 1 % des Kontextfensters des Modells. Wird das überschritten, kürzt Claude Code die Beschreibungen, um ins Budget zu passen, auf die Gefahr hin, genau die Schlüsselwörter zu streichen, die den richtigen Skill auslösen.
Zu viele Skills kosten also Tokens, und verschlechtern nebenbei das Auslösen der Skills, die du wirklich wolltest.
Der Bericht, über 117 Skills
Auf einer Installation mit 117 persönlichen Skills gibt der Befehl eine Zeile pro Skill und einen Schlusssatz aus. Der nicht interaktive Modus druckt ihn als reinen Text, was ihn aufbewahrbar macht:
claude -p '/skill-doctor'
Skills loaded this session
skill source context 7d tokens uses last used
ab-test-setup userSettings ~270 - 0× never
cold-email userSettings ~230 - 0× never
…
seo-onpage userSettings < 20 - 0× never
…
seo-search-console userSettings ~190 1.2m 1× 6 days
seo-keyword-research userSettings ~160 15.2m 1× 3 days
video userSettings ~210 548.4k 4× 3 days
wp-article-thumbnails userSettings ~190 28.5m 8× today
context = this skill's one-line listing in the system prompt, included every turn
(dash = not in the current listing, costs nothing; full SKILL.md loads only when it runs)
7d tokens = tokens attributed to the skill over the last 7 days of sessions on this machine
108 skills loaded but never invoked. Each one adds to the system prompt every turn.
Disable in /skills, or remove from .claude/skills.Vier Spalten tragen die Entscheidung. context nennt das Gewicht der Listing-Zeile, die in jeder Runde erneut mitgeht: hier von unter 20 bis 360 Tokens je Skill, rund 8.800 insgesamt. 7d tokens zählt, was der Skill in sieben Tagen tatsächlich verbraucht hat, und zeigt einen Strich, wenn er nichts verbraucht hat. uses und last used sagen den Rest: von 117 geladenen Skills wurden 108 nie aufgerufen, und nur fünf haben in der Woche überhaupt etwas verbraucht.
Ohne den Befehl messen
Auf einer Version vor 2.1.252, oder einfach um die Größenordnung gegenzuprüfen, lässt sich Ebene 1 direkt in den Dateien messen, denn sie besteht aus nichts als YAML-Frontmatter.
# Gewicht der Stufe 1: Name + Beschreibung jedes persönlichen Skills
awk 'FNR==1{f=0;p=0}
/^---[[:space:]]*$/{f++; next}
f!=1{next}
/^[A-Za-z_-]+:/{p=($1=="name:"||$1=="description:"||$1=="when_to_use:")}
p{c+=length($0)}
END{printf "%d skills, %d caracteres, ~%d tokens\n", ARGC-1, c, c/4}' \
~/.claude/skills/*/SKILL.md
# 117 skills, 45715 caracteres, ~11428 tokensDie Schätzung „ein Token pro vier Zeichen“ nennt 11.428 Tokens, wo der Bericht rund 8.800 zählt: Sie greift zu hoch, was für die Entscheidung völlig ausreicht. Dieselbe Rechnung für ~/.codex/skills ergibt 7 Skills und rund 590 Tokens: In diesem Punkt spielen die beiden Agenten nicht in derselben Liga, wie unser Vergleich Codex gegen Claude Code zeigt.
Der zweite Befehl liefert die Rangliste. Sie genügt, um zu entscheiden.
awk 'FNR==1{if(NR>1) print c, d; c=0; f=0; p=0; n=split(FILENAME,t,"/"); d=t[n-1]}
/^---[[:space:]]*$/{f++; next}
f!=1{next}
/^[A-Za-z_-]+:/{p=($1=="name:"||$1=="description:"||$1=="when_to_use:")}
p{c+=length($0)}
END{print c, d}' ~/.claude/skills/*/SKILL.md | sort -rn | head -5
# 1101 elevenlabs-game-music
# 1078 elevenlabs-game-sfx
# 864 directory-submissions
# 855 customer-research
# 831 ab-test-setupDiese 117 SKILL.md-Dateien kommen zusammen auf 778.142 Zeichen, also rund 194.500 Tokens, und das Listing macht davon nur 6 % aus. Die progressive Offenlegung funktioniert also, und was im Alltag wiegt, bleibt die Anzahl der Skills. Bleibt, dass 45.715 Zeichen in der Größenordnung des Listing-Budgets liegen: Ohne /context lässt sich nicht sagen, ob meine Beschreibungen bereits gekürzt werden.
Wegschneiden, was nichts bringt
Öffne /skills, markiere einen Skill, drücke die Leertaste, um durch die Zustände zu schalten, dann Escape zum Speichern. Das Menü schreibt die Einstellung skillOverrides selbst in .claude/settings.local.json. Es gibt vier Zustände.
| Wert | Von Claude gesehen | Im /-Menü |
|---|---|---|
on | Name und Beschreibung | Ja |
name-only | Nur Name | Ja |
user-invocable-only | Verborgen | Ja |
off | Verborgen | Nein |
name-only ist der richtige Kompromiss für einen Skill, den du gelegentlich selbst aufrufst: Der Name bleibt im Listing, die Beschreibung kostet nichts mehr. off passt zu Skills, die du nur „zum Ausprobieren“ installiert hattest.
Vorsicht bei Plugins: Skills, die von einem Plugin mitgebracht werden, sind von skillOverrides nicht betroffen. Du musst das Plugin über /plugin deaktivieren und dann /reload-plugins ausführen oder die Sitzung neu starten, damit seine Skills entladen werden.
Prüfen, ob das Kürzen etwas gebracht hat
Die Zeile Skills in /context zeigt die Größe des Listings nach Anwendung des Budgets: Das ist genau das, was das Modell erhält. Notiere den Wert, kürze, starte die Sitzung neu, notiere ihn erneut. Bewegt er sich nicht, obwohl du zehn Skills deaktiviert hast, warst du wahrscheinlich schon am Limit und Claude Code hat deine Beschreibungen gekürzt, die Kürzung hat trotzdem an Auslösegenauigkeit gewonnen.
Für die Kostenseite bleiben /cost und /usage die Referenz, aber rechne mit einem bescheidenen Gewinn: Der eigentliche Vorteil zeigt sich im Kontext, nicht in Euro. Wenn du nach Einsparungen einer anderen Größenordnung suchst, musst du dir das Routing der Dateizugriffe ansehen, wie im Erfahrungsbericht von Spotify zu den Hooks.
Zwei Einstellungen erlauben es, das Budget zu erweitern, statt zu kürzen: skillListingBudgetFraction (zum Beispiel 0.02 für 2 %) und die Umgebungsvariable SLASH_COMMAND_TOOL_CHAR_BUDGET, die eine Zeichenzahl festlegt. Erweitern verschiebt das Problem nur: Der bei den Skills gewonnene Kontext geht anderswo verloren.
Was du dir merken solltest
- Ein nie aufgerufener Skill kostet trotzdem bei jeder Runde seinen Namen und seine Beschreibung: Das ist Stufe 1 der progressiven Offenlegung.
/skill-doctorsetzt Claude Code 2.1.252 oder neuer voraus und erscheint im Tab Stats des/plugin-Managers.- Der Bericht zählt hier 117 geladene Skills, 108 nie aufgerufen, rund 8.800 Tokens Listing. Zwei Zeilen
awkauf~/.claude/skills/*/SKILL.mdliefern dieselbe Größenordnung ohne den Befehl. - Gekürzt wird mit
/skillsund der Leertaste, Plugin-Skills werden über/plugingekürzt, dann mit/reload-plugins. - Kontrolliert wird über die Zeile Skills in
/context, die das tatsächlich angewendete Budget widerspiegelt.
Häufige Fehler
/skill-doctor setzt Claude Code 2.1.252 oder neuer voraus. Prüfe mit claude --version, bevor du ihn im Menü suchst.skillOverrides nicht betroffen. Deaktiviere das Plugin über /plugin und starte dann /reload-plugins oder die Sitzung neu.Skill usage reports are not available on this connection. Öffne ein Terminal auf der Maschine, die die Sitzung hostet.SKILL.md lädt erst beim Auslösen. Was bei jeder Runde zählt, sind nur Name und Beschreibung.description und when_to_use ist ohnehin auf 1.536 Zeichen begrenzt.

