
/skill-doctor pokazuje skille załadowane w Twojej sesji, które nigdy nie zostały wywołane, i ile kosztują w kontekście. Raport otwiera się w zakładce Stats menedżera /plugin albo drukuje się jako tekst z -p, i wymaga Claude Code 2.1.252 lub nowszego. Cięcia dokonuje się przez /skills i spację, a skille dostarczane przez plugin wyłącza się z poziomu /plugin.
Uruchamiasz Claude Code, jeszcze o nic nie poprosiłeś, a część kontekstu już poszła. Na mierzonej tu instalacji załadowanych jest 117 osobistych skilli, 108 nigdy nie zostało wywołanych, a ich listing idzie z każdą turą rozmowy.
Co dokładnie pokazuje /skill-doctor
Komenda pojawiła się wraz z Claude Code 2.1.261, wydanym 4 września 2026. Notatka wydania ogłasza to w jednym zdaniu: pokazuje, które załadowane skille pozostają nieużywane i ile kosztują w kontekście, żeby można je było przyciąć.
Dokumentacja precyzuje zakres. Raport obejmuje skille Twojej sesji, z wyjątkiem skilli dołączonych do Claude Code i skilli firmowych. Wskazuje te, które nigdy nie zostały wywołane, pokazuje, gdzie je wyłączyć, i dodatkowo wylicza pluginy, które nie były ostatnio używane. W sesji interaktywnej otwiera się w zakładce Stats menedżera /plugin, w trybie nieinteraktywnym, z -p, Claude Code wypisuje go jako tekst.
Przed próbą warto znać dwa warunki. Potrzebny jest Claude Code 2.1.252 lub nowszy. A z poziomu Remote Control, na telefonie czy w przeglądarce, komenda odmawia odpowiedzi: zwraca Skill usage reports are not available on this connection. Uruchom ją w terminalu maszyny, która hostuje sesję.
Dlaczego nigdy niewywoływany skill i tak kosztuje kontekst?
Bo skill ładuje się w trzech etapach. Otwarty standard Agent Skills nazywa to stopniowym ujawnianiem: przy starcie agent czyta tylko nazwę i opis każdego skilla, gdy zadanie odpowiada temu opisowi, czyta treść SKILL.md, pliki dodatkowe otwiera tylko wtedy, gdy ich potrzebuje. Mechanizm opisuje szczegółowo nasz przewodnik po formacie SKILL.md.
Za pierwszy poziom płaci się jednak przy każdej turze rozmowy. Dokumentacja Claude Code jest jednoznaczna: każdy skill z listingu dokłada się do kontekstu przy każdej turze, niezależnie od tego, czy Claude z niego korzysta. A ten listing ma budżet znaków odpowiadający 1% okna kontekstu modelu. Po jego przekroczeniu Claude Code skraca opisy, żeby zmieścić się w budżecie, ryzykując usunięcie akurat tych słów kluczowych, które uruchamiają właściwy skill.
Zbyt wiele skilli kosztuje więc tokeny, a przy okazji obniża trafność wywoływania tych, na których naprawdę Ci zależy.
Raport, na 117 skillach
Na instalacji ładującej 117 osobistych skilli komenda wypisuje jedną linię na skill i zdanie podsumowania. Tryb nieinteraktywny drukuje go jako czysty tekst, co pozwala go zachować:
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.Cztery kolumny niosą decyzję. context podaje wagę linii listingu, tej, która idzie z każdą turą: tutaj od poniżej 20 do 360 tokenów na skill, około 8 800 łącznie. 7d tokens liczy, ile skill rzeczywiście zużył przez siedem dni, i pokazuje myślnik, gdy nie zużył nic. uses i last used mówią resztę: ze 117 załadowanych skilli 108 nigdy nie zostało wywołanych, a tylko pięć zużyło cokolwiek w ciągu tygodnia.
Mierzenie bez komendy
Na wersji wcześniejszej niż 2.1.252, albo po prostu żeby zweryfikować rząd wielkości, poziom 1 mierzy się bezpośrednio w plikach, skoro składa się wyłącznie z frontmattera YAML.
# Waga poziomu 1: nazwa i opis każdego osobistego skilla
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 tokensSzacunek „jeden token na cztery znaki” daje 11 428 tokenów tam, gdzie raport liczy około 8 800: zawyża, co w zupełności wystarcza do podjęcia decyzji. Ten sam rachunek dla ~/.codex/skills daje 7 skilli i około 590 tokenów: pod tym względem obaj agenci nie grają w tej samej lidze, co pokazuje porównanie Codex i Claude Code.
Druga komenda wypisuje ranking. To wystarczy, żeby podjąć decyzję.
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-setupTe 117 plików SKILL.md liczy łącznie 778 142 znaki, czyli około 194 500 tokenów, a listing stanowi z tego tylko 6%. Stopniowe ujawnianie robi więc swoje, a tym, co waży na co dzień, pozostaje liczba skilli. Pozostaje fakt, że 45 715 znaków mieści się w rzędzie wielkości budżetu listingu: bez /context nie da się sprawdzić, czy moje opisy są już przycięte.
Wycinanie tego, co się nie przydaje
Otwórz /skills, zaznacz skill, naciśnij spację, żeby przełączać stany, a potem Esc, żeby zapisać. Menu samo zapisuje ustawienie skillOverrides w .claude/settings.local.json. Istnieją cztery stany.
| Wartość | Co widzi Claude | W menu / |
|---|---|---|
on | Nazwa i opis | Tak |
name-only | Sama nazwa | Tak |
user-invocable-only | Ukryty | Tak |
off | Ukryty | Nie |
name-only to dobry kompromis dla skilla, który sam czasem wywołujesz: nazwa zostaje w listingu, opis przestaje ważyć. off pasuje do tych, które instalowałeś „na próbę”.
Uwaga na przypadek pluginów: skille dostarczane przez plugin nie podlegają skillOverrides. Trzeba wyłączyć plugin z poziomu /plugin, a potem uruchomić /reload-plugins albo zrestartować sesję, żeby jego skille zostały odładowane.
Sprawdzenie, czy cięcie coś dało
Linia Skills w /context pokazuje rozmiar listingu po zastosowaniu budżetu: to dokładnie to, co dostaje model. Zanotuj wartość, wytnij zbędne skille, zrestartuj sesję, zanotuj ponownie. Jeśli wartość się nie zmienia mimo wyłączenia dziesięciu skilli, to znak, że budżet był już wypełniony i Claude Code przycinał opisy, a samo cięcie i tak poprawi trafność wywoływania.
Jeśli chodzi o rachunek, /cost i /usage pozostają punktami odniesienia, ale spodziewaj się skromnego zysku: prawdziwa korzyść widoczna jest w kontekście, nie w euro. Jeśli szukasz oszczędności innego rzędu wielkości, przyjrzyj się routingowi odczytów plików, jak w relacji Spotify na temat hooków.
Dwa ustawienia pozwalają rozszerzyć budżet zamiast ciąć: skillListingBudgetFraction (na przykład 0.02 dla 2%) oraz zmienna środowiskowa SLASH_COMMAND_TOOL_CHAR_BUDGET, która ustala liczbę znaków. Rozszerzenie tylko przesuwa problem: kontekst odzyskany na skillach ginie gdzie indziej.
Co warto zapamiętać
- Nigdy niewywołany skill i tak kosztuje swoją nazwę i opis przy każdej turze: to poziom 1 stopniowego ujawniania.
/skill-doctorwymaga Claude Code 2.1.252 lub nowszego i wyświetla się w zakładce Stats menedżera/plugin.- Raport liczy tutaj 117 załadowanych skilli, 108 nigdy niewywołanych, około 8 800 tokenów listingu. Dwie linie
awkna~/.claude/skills/*/SKILL.mddają ten sam rząd wielkości bez komendy. - Tnie się przez
/skillsi spację, skille z pluginów wycina się z poziomu/plugin, a potem/reload-plugins. - Sprawdza się to na linii Skills w
/context, która odzwierciedla faktycznie zastosowany budżet.
Częste błędy
/skill-doctor wymaga Claude Code 2.1.252 lub nowszego. Sprawdź przez claude --version, zanim zaczniesz jej szukać w menu.skillOverrides. Wyłącz plugin z poziomu /plugin, a potem uruchom /reload-plugins albo zrestartuj sesję.Skill usage reports are not available on this connection. Otwórz terminal na maszynie, która hostuje sesję.SKILL.md ładuje się dopiero przy wywołaniu. To, co waży przy każdej turze, to wyłącznie nazwa i opis.description i when_to_use i tak ma limit 1 536 znaków.

