TL;DR
- Osiem popularnych repozytoriów do Claude Code zainstalowano na poziomie projektu w jednej prawdziwej bazie kodu i zmierzono: tokeny na starcie sesji, tokeny wyjściowe w trzech zadaniach programistycznych oraz to, co każde z nich zapisywało poza projektem.
- Tylko jedno z ośmiu zmieniło wynik: anti-slop, użyty jako linter, wyłapał ten sam niebezpieczny cast we wszystkich 3 przebiegach T3, za +95 tokenów sesji i zero na turę.
- Zestawy reguł wymuszające zwięzłe odpowiedzi nie sprawdziły się przy pracy z narzędziami: reklamowane przez Chisle 52% bazowej linii okazało się 94% bazowych tokenów wyjściowych, a jego ramię kosztowało więcej niż baza w dwóch z trzech zadań, gdy doliczyć wejście.
- Trzy serwery MCP nie zostały ani razu wywołane w 63 przebiegach. Zainstalowane nie znaczy używane.
- Stos jest addytywny: wszystkie osiem razem dodało +6,804 tokenów na starcie, o 63 tokeny mniej niż suma części.
- Dwie instalacje sięgnęły poza projekt. Jeden codemod zarejestrował się w globalnych konfiguracjach 8 innych agentów; jedno narzędzie ma na sztywno
--dangerously-skip-permissionsi kopiuje plik z poświadczeniami, więc nigdy go nie uruchomiono.
Co mówią pomiary
Tokeny na starcie sesji są powtarzalne, koszt w dolarach nie: każdy wariant zwrócił identyczną sumę tokenów wejściowych w obu przebiegach, podczas gdy koszt tego samego wariantu wahał się od $0.0183 do $0.0035 zależnie od stanu cache promptów, dlatego wszędzie miarą jest liczba tokenów. Projekt bazowy startuje od 17,378 tokenów s4.
Schematy narzędzi MCP są w tej wersji Claude Code odroczone, a koszt zależy teraz od liczby nazw narzędzi, które serwer ogłasza, a nie od rozmiaru schematów. 39 narzędzi ouroboros kosztuje +1,642 tokenów, 19 narzędzi reticle +895, 2 narzędzia ui-skills +37: mniej więcej 42 do 47 tokenów na nazwę narzędzia. Domyślnie wszystkie narzędzia MCP są odroczone i ładowane na żądanie, a tryb auto zmiennej ENABLE_TOOL_SEARCH odracza je, gdy ich definicje osiągną 10% okna kontekstu s4.
img2threejs zawiera 32,902-bajtowy SKILL.md i 352 pliki, a kosztuje +107 tokenów na starcie, bo ładuje się tylko opis z frontmattera. Dokumentacja skilli ogranicza każdy opis na liście do 1,536 znaków i skraca opisy, by zmieściły się w budżecie listy, gdy skilli jest dużo; po kompaktowaniu wywołane skille są dołączane ponownie po 5,000 tokenów każdy we wspólnym budżecie 25,000 tokenów s5. To ten budżet listy sprawia, że 40 skilli może kosztować 3,060 tokenów na turę w konfiguracji, która nie wywołuje żadnego z nich s10, i dlatego ucinane są opisy, a nie same skille s11.
Hook UserPromptSubmit w Chisle dodaje 287 bajtów additionalContext w każdej turze; przy zadaniu na 22 tury to dlatego jego ramię kosztowało +41,539 łącznych tokenów wejściowych w T3 względem bazy. caveman, zmierzony jako punkt odniesienia, nie wstrzykuje niczego, chyba że prompt zaczyna się od /caveman. Gdy kilka hooków na tym samym zdarzeniu zwraca additionalContext, Claude dostaje je wszystkie sklejone, z limitem 10,000 znaków na hook s15. Po podłączeniu razem Chisle, caveman i ouroboros było 3 rejestracje na SessionStart, 3 na UserPromptSubmit i 2 na PostToolUse, co dało +4,269 tokenów na starcie s15.
README Chisle podaje rachunek za 20 zadań na poziomie 52% bazy i samo ogranicza tę liczbę do promptów jednoturowych bez narzędzi s3. W trzech zadaniach na prawdziwym repo, po 3 przebiegi każde, zsumowane średnie wyjścia Chisle wyniosły 9,007 tokenów wobec bazy 9,615, czyli 94%; caveman miał 10,820, czyli 113%, na próbie, w której rozrzut T3 wynosił 2,014 tokenów, więc żaden z kierunków nie wychodzi ponad szum s3. Kompresor wyjścia Chisle ani razu nie zapisał rekordu oszczędności w 63 przebiegach.
anti-slop wkopiowany do tools/oxlint/ ze wszystkimi 18 regułami ogólnymi plus oxc/no-accumulating-spread znalazł 109 problemów w nietkniętym projekcie liczącym 4,775 linii, z czego 83% pochodziło z dwóch reguł stylu domowego (require-readable-spacing 50, require-safety-comment-for-type-assertion 41) s8. W kodzie napisanym przez Claude wyłapał maxLength={field.maxLength as number} we wszystkich 3 przebiegach T3, gdzie Claude kopiował niebezpieczny cast z własnej bazy kodu s8. Plugin jest w ESM, więc projekt-gospodarz potrzebuje "type": "module", inaczej oxlint kończy się błędem Cannot use import statement outside a module.
Codemod init Reticle, uruchomiony z ustawionym RETICLE_STATE_DIR i wyłączoną telemetrią, zgłosił, że zarejestrował serwer MCP w 8 kolejnych agentach (VS Code user scope, GitHub Copilot CLI, Warp, Factory Droid, Kiro, Amazon Q Developer CLI, Cline CLI, Amp) i wstępnie zatwierdził jego narzędzia w Gemini CLI; potem parowanie zakończyło się błędem ERR_OSSL_EVP_UNSUPPORTED s6. Caliper odrzucono: claude_code.py:106 ma na sztywno --dangerously-skip-permissions, a seed_files() kopiuje ~/.claude/.credentials.json z awaryjnym użyciem Keychain s2. Hook UserPromptSubmit w ouroboros odpowiada na zwykły prompt, taki jak write prd for reading time, tekstem REQUIRED SKILL: /ouroboros:setup, czyli krokiem, którego instalacja na poziomie projektu nie może spełnić s7.
Praca na 2,545 trajektoriach w bibliotekach po 52, 102 i 202 skille podaje zbiorcze spadki skuteczności o .08, .14 i do 21%, przy czym podobne opisy zasłaniają się nawzajem, a ich udział w stracie rośnie s20.
Pomiary
Protokół: jeden prawdziwy projekt TypeScript, każde repo zainstalowane wyłącznie na poziomie projektu. Start sesji: prompt Reply with OK w trybie JSON -p z identycznymi flagami, 2 przebiegi na wariant, wynik = input_tokens + cache_creation_input_tokens + cache_read_input_tokens pierwszej tury. Ablacja: trzy zadania programistyczne (T1 krótkie, T2 średnie, T3 długie zadanie UI) z testami zaliczenia i bramką type-check, 3 przebiegi na komórkę, warianty = baza, każde zawsze aktywne repo osobno, wszystkie osiem razem. anti-slop: oxlint 1.78.0 z wkopiowanym zestawem reguł na nietkniętym projekcie i na kodzie napisanym w 9 przebiegach bazowych.
| repo | zainstalowane na poziomie projektu | tokeny dodane na starcie sesji | koszt na turę |
|---|---|---|---|
| baza | nic | 17,378 | brak |
| Chisle | 4 skille, 4 komendy, 3 hooki | +3,496 | +287 bajtów additionalContext w każdej turze |
| ouroboros | serwer MCP, 39 nazw narzędzi | +1,642 | wstrzykiwanie warunkowe |
| reticle | serwer MCP, 19 nazw narzędzi | +895 / +903 | nie zaobserwowano |
| fwc-swiftui-skills | 2 skille | +304 | brak |
| caliper | 2 skille | +172 | brak |
| img2threejs | 1 skill, 352 pliki, SKILL.md = 32,902 B |
+107 | brak |
| anti-slop | 1 skill + wkopiowany zestaw reguł | +95 | brak |
| ui-skills | zdalny MCP, 2 narzędzia | +37 | brak |
| wszystkie osiem razem | wszystko powyżej | +6,804 | tylko koszt na turę Chisle |
| caveman (punkt odniesienia) | 4 skille, 2 hooki | +744 | 0 |
| zadanie | wariant | zaliczone | nowe błędy typów | wyjście tok średnia | wyjście min do max | wejście łącznie średnia | koszt średni | tury | wywołania MCP |
|---|---|---|---|---|---|---|---|---|---|
| T1 | baza | 3/3 | 0 | 1,668 | 1,619 do 1,739 | 95,462 | $0.0519 | 7.0 | 0 |
| T1 | Chisle | 3/3 | 0 | 1,434 | 1,341 do 1,502 | 106,001 | $0.0576 | 7.7 | 0 |
| T1 | ui-skills | 3/3 | 0 | 1,756 | 1,644 do 1,885 | 96,279 | $0.0535 | 7.3 | 0 |
| T1 | reticle | 3/3 | 0 | 1,899 | 1,653 do 2,177 | 107,263 | $0.0594 | 8.0 | 0 |
| T1 | ouroboros | 3/3 | 0 | 1,729 | 1,655 do 1,787 | 97,166 | $0.0549 | 7.0 | 0 |
| T1 | stos | 3/3 | 0 | 1,462 | 1,460 do 1,465 | 128,221 | $0.0646 | 7.7 | 0 |
| T2 | baza | 3/3 | 0 | 2,128 | 2,105 do 2,164 | 74,286 | $0.0540 | 9.0 | 0 |
| T2 | Chisle | 3/3 | 0 | 2,184 | 2,150 do 2,230 | 87,462 | $0.0624 | 10.0 | 0 |
| T2 | ui-skills | 3/3 | 0 | 2,348 | 2,224 do 2,504 | 74,869 | $0.0604 | 10.0 | 0 |
| T2 | reticle | 3/3 | 0 | 2,614 | 2,312 do 2,824 | 78,664 | $0.0635 | 10.7 | 0 |
| T2 | ouroboros | 3/3 | 0 | 2,441 | 2,152 do 2,815 | 80,819 | $0.0622 | 10.0 | 0 |
| T2 | stos | 3/3 | 0 | 2,136 | 2,015 do 2,216 | 89,378 | $0.0661 | 9.7 | 0 |
| T3 | baza | 3/3 | 0 | 5,819 | 5,423 do 6,063 | 198,217 | $0.1551 | 22.0 | 0 |
| T3 | Chisle | 3/3 | 0 | 5,389 | 5,206 do 5,500 | 239,756 | $0.1565 | 20.3 | 0 |
| T3 | ui-skills | 3/3 | 0 | 5,279 | 4,860 do 5,567 | 214,691 | $0.1477 | 21.0 | 0 |
| T3 | reticle | 3/3 | 0 | 4,664 | 4,008 do 5,776 | 198,740 | $0.1293 | 19.0 | 0 |
| T3 | ouroboros | 3/3 | 0 | 5,456 | 4,324 do 7,093 | 232,763 | $0.1544 | 21.0 | 0 |
| T3 | stos | 3/3 | 0 | 5,331 | 4,787 do 5,843 | 241,576 | $0.1591 | 19.7 | 0 |
Zaliczono 63/63 przebiegów, a 0/63 wprowadziło nowy błąd typów. Tylko dwie komórki wychodzą poza własny rozrzut między przebiegami: Chisle w T1 (−234, −14.0%) i stos w T1 (−206, −12.3%). W T2 i T3 każda różnica mieści się w rozrzucie; przebiegi T3 ouroboros miały od 4,324 do 7,093 tokenów wyjściowych przy identycznym prompcie, czyli wahanie o 64%.
| repo | werdykt | dowód |
|---|---|---|
| anti-slop | zmienił wynik, jako kontrola | wyłapał ten sam niebezpieczny cast w 3/3 przebiegów T3, +95 tokenów, 0 na turę |
| Chisle | nic mierzalnego, kosztował więcej | 94% wyjścia bazy wobec deklarowanych 52%; +3,496 na starcie, +287 bajtów na turę |
| ui-skills | nic nie zmienił | 0 wywołań narzędzi w 9 przebiegach, +37 tokenów |
| reticle | w konflikcie | init zapisał do ~/.claude/settings.json i konfiguracji 8 innych agentów; parowanie nigdy się nie zakończyło |
| ouroboros | w konflikcie | wymaga /ouroboros:setup przy zwykłych promptach; 39 nazw narzędzi, 0 wywołań |
| caliper | nie uruchomiono | na sztywno --dangerously-skip-permissions, kopiuje plik z poświadczeniami |
| img2threejs | poza stosem | +107 tokenów, nie ma z czym kolidować |
| fwc-swiftui-skills | poza stosem | +304 tokenów, statyczny Markdown |
Do zrobienia w poniedziałek
- Uruchom
/context allw świeżej sesji swojego głównego projektu i zapisz liczbę startową. - Uruchom
claude plugin details <name>dla każdego zainstalowanego pluginu; linia always-on to jedyna wartość rozliczana w każdej turze. - Wypisz swoje hooki według zdarzeń. Każdy hook zwracający
additionalContextnaUserPromptSubmitprzy każdym prompcie to podatek na turę; zostaw tylko te, które bramkuje słowo kluczowe lub matcher. - Policz nazwy narzędzi ogłaszane przez każdy serwer MCP, przyjmij około 42 do 47 tokenów na nazwę, a potem sprawdź w transkryptach, ile z nich kiedykolwiek wywołano.
- Zanim zainstalujesz cokolwiek ze skryptem
initlub setup, przeczytaj go pod kątem zapisów poza repo:~/.claude/settings.json, katalogi konfiguracji innych agentów, pliki z poświadczeniami,--dangerously-skip-permissions. - Podepnij kontrole jakości wygenerowanego kodu jako linter w kroku weryfikacji, a nie jako skill w kontekście: reguła lintera nie kosztuje nic na turę.
- Zanim uwierzysz w jakąkolwiek obietnicę oszczędności tokenów, uruchom to samo zadanie 3 razy z narzędziem i bez niego i porównaj różnicę z własnym rozrzutem min-max.
- Archiwizuj to, co usuwasz, zamiast kasować, żeby workflow, który po to sięga, mógł to odzyskać.
Czytaj dalej
- Budżet listy skilli i limit 1,536 znaków na opis wyjaśniają, dlaczego zatłoczona konfiguracja pogarsza działanie, choć żaden skill nie przestaje się ładować. Przeczytaj sekcje "Skill descriptions are cut short" i "Skill content lifecycle" s5.
- Opis
/skill-doctorpokazuje 40 skilli kosztujących 3,060 tokenów na turę i które ciąć najpierw; jego ślepy punkt, kosztowne skille wewnątrz używanego pluginu, zostaje na osobną kontynuację s10. - Praca stojąca za zasadą "więcej niż 30 skilli": 2,545 trajektorii w bibliotekach po 52, 102 i 202 skille, z wyizolowanym efektem zasłaniania s20, oraz przystępne streszczenie, które ją spopularyzowało s12.
- Sklejanie hooków i limit 10,000 znaków
additionalContext, a także składnia matcherów, dzięki której hook odpala się tylko naWrite|Edits15. - Wątek o usunięciu 63%, w tym zakodowany na sztywno bearer token znaleziony w usuniętej konfiguracji MCP, boczny wątek bezpieczeństwa pominięty w wideo s13.
- README samego Chisle, linie 229 i 262, ogranicza jego 52% do promptów jednoturowych bez narzędzi i oddaje komórkę krótkiego kodowania caveman. Przeczytaj drobny druk, zanim zacytujesz nagłówek s3.
- Dwóch repo poza stosem nie oceniano, bo wywołuje się je ręcznie i nic nie kosztują na starcie: img2threejs do scen Three.js s21 i fwc-swiftui-skills do powierzchni Liquid Glass s22.
Źródła
- Plugins reference, dokumentacja Claude Code. Dlaczego warto:
plugin details, zakresy instalacji i odroczone ładowanie narzędzi MCP, przez które liczba nazw narzędzi jest prawdziwym kosztem. - Extend Claude with skills, dokumentacja Claude Code. Dlaczego warto: limit opisu, budżet listy i budżet ponownego dołączania po kompaktowaniu na jednej stronie.
- Hooks reference, dokumentacja Claude Code. Dlaczego warto: co się dzieje, gdy dwa hooki wstrzykują na tym samym zdarzeniu, i jak matchery trzymają hook z dala od większości tur.
- dmmulroy/anti-slop, GitHub. Dlaczego warto: jedyne z ośmiu repo, które zmieniło wynik; wkopiuj reguły, pomiń skill.
- JayPokale/Chisle, GitHub. Dlaczego warto: README, które uczciwie ogranicza własne twierdzenie o 52%, jeśli doczytasz poza nagłówek.
- edonadei/caliper, GitHub. Dlaczego warto: ewaluator skilli wart poznania i lekcja czytania
claude_code.pyprzed uruchomieniem czegokolwiek. - reticlehq/reticle, GitHub. Dlaczego warto: codemod
initto najwyraźniejszy przykład instalatora piszącego daleko poza twoim projektem. - Q00/ouroboros, GitHub. Dlaczego warto: workflow oparty na hookach, który ma sens tylko po instalacji globalnej, z krokiem setup, którego instalacja projektowa nie może spełnić.
- ibelick/ui-skills, GitHub. Dlaczego warto: najtańsza instalacja w zestawieniu, +37 tokenów, i ani razu nie wywołana.
- /skill-doctor: 40 skills, 3,060 tokens a turn, dev.to. Dlaczego warto: rozbicie kosztu na skille w prawdziwej konfiguracji.
- Too many Claude Code skills? How the listing budget decides, dev.to. Dlaczego warto: mechanizm, przez który opisy są obcinane.
- Why More Than 30 Skills Kill Your AI Agent, dev.to. Dlaczego warto: czytelna wersja pracy o zasłanianiu skilli.
- Skill shadowing paper, arXiv. Dlaczego warto: zbiorcze spadki skuteczności według rozmiaru biblioteki, z przedziałami ufności.
- I removed 63% of my Claude Code setup, Reddit r/ClaudeCode. Dlaczego warto: z ~235 komponentów do ~87, zarchiwizowane, nie skasowane.
- My fresh Claude Code sessions were starting at ~35K tokens, Reddit r/ClaudeCode. Dlaczego warto: siedmiokrokowy audyt z
/context all, który możesz skopiować jeszcze dziś po południu. - img2threejs/img2threejs, GitHub. Dlaczego warto: dowód, że 32,902-bajtowy
SKILL.mdkosztuje 107 tokenów, dopóki go nie wywołasz. - FloWritesCode/fwc-swiftui-skills, GitHub. Dlaczego warto: skille w statycznym Markdownie, kształt instalacji, która nie może z niczym kolidować.
FAQ
Czy serwer MCP nadal kosztuje tysiące tokenów schematu na starcie?
Nie w zmierzonej wersji. Schematy są odroczone, a koszt zależy od liczby ogłaszanych nazw narzędzi, około 42 do 47 tokenów każda. Serwer z 39 narzędziami kosztował +1,642 tokenów; z 2 narzędziami +37.
Dlaczego Chisle kosztował więcej niż baza, choć produkował mniej tokenów wyjściowych?
Jego zestaw reguł ładuje się na starcie sesji (+3,496 tokenów), a hook wstrzykuje 287 bajtów w każdej turze. W T2 i T3 ten narzut wejścia przewyższył oszczędność na wyjściu, która nigdy nie wyszła ponad szum między przebiegami.
AIDive