Triki wydajności w codziennej pracy z Claude Code
Triki wydajności w Claude Code to powtarzalne nawyki, które ograniczają zmarnowane tury i tokeny: jedno zadanie na sesję dzięki /rename i /clear, zawężony odczyt plików, niższy poziom wysiłku rozumowania (effort) przy pracy mechanicznej, skróty powłoki oparte na claude -p i wyjście JSON dla skryptów. Łączy je jedna zasada: żaden z nich nie może usunąć bramki testów, która dowodzi wyniku.
Ta strona jest dla deweloperów, którzy już codziennie pracują z Claude Code. Znasz te objawy: sesja, która zaczęła się od poprawki jednego błędu, ma już na karku trzy zadania, każda odpowiedź trwa dłużej, Claude czyta dist/, zanim dotknie jedynego pliku, który wskazałeś, a ten sam prompt „przejrzyj ten diff” wpisujesz dziesięć razy w tygodniu. Poniższe poprawki konfigurujesz w kilka minut, a zwracają się przy każdym zadaniu.
Co dają ci te nawyki w Claude Code
Dział zatytułowany „Co dają ci te nawyki w Claude Code”- Zmierzony punkt wyjścia, dzięki któremu wiesz, czy trik pomógł, czy tylko wydawał się szybszy.
- Rutynę sesji, która utrzymuje mały kontekst bez utraty pracy: nazwij, przekaż, wyczyść, wznów.
- Reguły uprawnień i linie w
CLAUDE.md, które powstrzymują Claude przed czytaniem plików generowanych i rozwlekłymi podsumowaniami. - Sześć skrótów powłoki, które nie przesłaniają prawdziwych poleceń i nie wymagają zatwierdzeń, których nie mogą dostać.
- Skill
/rev-staged, który zastępuje prompt do przeglądu wpisywany co tydzień od nowa. - Wyjście dla skryptów z
--output-format jsoni--json-schema, sprawdzane przezjq -ezamiast na oko. - Regułę weryfikacji: szybkie, zawężone testy w trakcie iteracji i pełna bramka przed uznaniem zadania za skończone.
Jak sprawdzić, czy trik wydajności zadziałał?
Dział zatytułowany „Jak sprawdzić, czy trik wydajności zadziałał?”Zmierz, zanim cokolwiek zmienisz. Dwa wbudowane polecenia dają liczby (sprawdzone na Claude Code 2.1.283):
| Polecenie | Co pokazuje | Do czego go użyć |
|---|---|---|
/context | Bieżące zużycie kontekstu jako kolorowa siatka (/context all ze szczegółami) | Zobaczysz, ile okna zajmują CLAUDE.md, definicje narzędzi MCP, odczyty plików i rozmowa |
/usage | Koszt sesji, limity planu i statystyki aktywności (/cost i /stats to aliasy) | Porównasz koszt tego samego rodzaju zadania przed zmianą i po niej |
Uruchom /context na początku świeżej sesji i ponownie po typowym zadaniu. Jeśli duża część okna jest zajęta, zanim cokolwiek wpiszesz, rozwiązaniem jest krótszy CLAUDE.md albo mniej serwerów MCP, a nie sprytniejszy prompt — zobacz przycinanie CLAUDE.md i AGENTS.md. Śledzenie wydatków na poziomie zespołu należy do strony o kontroli kosztów.
Od którego nawyku zacząć?
Dział zatytułowany „Od którego nawyku zacząć?”Kolejność ma znaczenie: każdy krok pozwala zmierzyć następny, a bramka testów trafia na miejsce przed każdym trikiem, który ogranicza sprawdzanie.
| Kolejność | Nawyk | Konfiguracja | Dlaczego w tym miejscu |
|---|---|---|---|
| 1 | Punkt wyjścia z /context i /usage | dwa polecenia | Bez niego nie odróżnisz realnej oszczędności od wrażenia |
| 2 | Bramka testów w CLAUDE.md | trzy linie | Każdy kolejny trik ogranicza pracę; ten zachowuje dowód |
| 3 | Jedno zadanie na sesję | rutyna, bez konfiguracji | Największa oszczędność kontekstu, za darmo |
| 4 | Reguły deny dla plików generowanych | jeden plik ustawień | Egzekwowane, więc działają, nawet gdy prompt o nich zapomni |
| 5 | effort i styl wyjścia | jedno polecenie | Tanie do sprawdzenia i łatwe do cofnięcia dla pojedynczego zadania |
| 6 | Skróty powłoki, skille i wyjście JSON | edycja profilu powłoki, jeden SKILL.md | Zwracają się dopiero wtedy, gdy powtarzasz zadanie co tydzień |
Jedno zadanie na sesję
Dział zatytułowany „Jedno zadanie na sesję”Nieaktualny kontekst z poprzedniego zadania sprawia, że każda kolejna tura jest wolniejsza i droższa, a do rozumowania Claude trafiają nieistotne pliki. Poniższa rutyna utrzymuje jedną sesję przy jednym zadaniu i niczego nie gubi.
-
Nazwij sesję na starcie. Zacznij od
claude -n payment-retryalbo w trwającej sesji wpisz/rename payment-retry. Nazwa pojawia się w wyborze/resumei w tytule terminala. -
Pytania poboczne zadawaj przez
/btw./btw what does the retry decorator in src/lib/http.ts do?odpowiada bez przerywania głównej rozmowy, więc szybkie sprawdzenie nie staje się częścią kontekstu zadania. -
Przed zmianą zadania zapisz notatkę przekazania. Użyj promptu poniżej. Notatka przetrwa każde późniejsze
/compactczy/cleari jest wejściem dla następnej sesji. -
Uruchom
/clear. Polecenie zaczyna nową sesję z pustym kontekstem. Poprzednia sesja zostaje na dysku i możesz ją otworzyć z/resume. -
Wracaj po nazwie.
claude -r payment-retryotwiera wybór sesji przefiltrowany tym wyszukiwaniem;claude -ckontynuuje najnowszą sesję w bieżącym katalogu.
Gdy musisz zostać w jednej długiej sesji, kompaktuj z jawnymi instrukcjami, zamiast czekać na automatyczne kompaktowanie:
/compact Keep: files I edited, the failing test names and their last output, decisions and why. Drop: exploratory file reads, rejected approaches, command output already summarised.Żeby nie wpisywać tego za każdym razem, dodaj stałą regułę do CLAUDE.md; mechanizm podsumowania czyta ją razem z resztą rozmowy. Strona o kontroli kosztów korzysta z tego samego wzorca:
# Compact instructionsWhen compacting, preserve test output, error traces, file paths you changed and decisions with their reasons.Summarise discussion. Drop exploratory reads that led to no change.W nowej sesji zacznij od: Read .claude/handoff.md, run the proving command first, and tell me if the result differs from the note before you continue. Jeśli nie chcesz commitować notatki, dopisz .claude/handoff.md do .git/info/exclude. Jeśli wolisz zainstalować gotową procedurę przekazania zamiast utrzymywać ten prompt, zajrzyj do skilli do dyscypliny kontekstu i tokenów.
Jak powstrzymać Claude przed czytaniem zbędnych plików
Dział zatytułowany „Jak powstrzymać Claude przed czytaniem zbędnych plików”Claude Code najpierw eksploruje, potem edytuje. To dobre przy nieznanym kodzie i marnotrawne przy wskazanym z nazwy błędzie. Zawęź zadanie w prompcie, a pliki generowane odgrodź w ustawieniach, żeby reguła działała także wtedy, gdy prompt o niej zapomni.
Odgrodź pliki generowane regułami uprawnień. Reguła deny Read(...) w .claude/settings.json nie pozwala narzędziom plikowym otwierać tych ścieżek; ten plik możesz commitować, żeby dostał go cały zespół:
{ "permissions": { "deny": [ "Read(./dist/**)", "Read(./build/**)", "Read(./coverage/**)", "Read(./package-lock.json)" ] }}Reguła deny jest egzekwowana; linia w CLAUDE.md w rodzaju „nigdy nie czytaj dist/” to tylko wskazówka. Regułę stosuj do wszystkiego, czego nigdy nie chcesz w kontekście, a CLAUDE.md zostaw dla zachowania. Gdzie trafia która instrukcja, opisuje strona o pamięci i CLAUDE.md.
Utnij końcowe podsumowanie. Uruchom /output-style i wybierz Concise (jeden z czterech wbudowanych stylów) albo dodaj jedną linię do CLAUDE.md:
After a change, do not summarise it. Show the changed file paths and the test command you ran with its result.Dopasuj effort do zadania. Claude Opus 5.5, domyślny model Claude Code od wersji 2.1.280 w kanale wydań latest, pracuje na poziomie effort medium (kanał stable wciąż startuje ze starszym modelem domyślnym; /model pokaże, co masz). Przy zmianach mechanicznych (zmiana nazw, formatowanie, boilerplate) zejdź na low przez /effort low albo claude --effort low, a gdy Claude coś przeoczy, podnieś na high, zanim w ogóle rozważysz inny model. Przegląd modeli wymienia aktualne modele i mówi, kiedy je zmieniać.
Skróty powłoki, które oszczędzają czas bezpiecznie
Dział zatytułowany „Skróty powłoki, które oszczędzają czas bezpiecznie”O tym, czy skrót oszczędza czas, czy sprawia kłopoty, decydują dwa szczegóły. Po pierwsze, każdej nazwie nadaj prefiks: popularny alias cc='claude -c' przesłania w twojej powłoce kompilator C. Po drugie, uruchomienie claude -p startuje w trybie uprawnień Manual i nie ma nikogo, kto zatwierdziłby edycję, więc jednorazowe skróty zostają tylko do odczytu, a wszystko, co zapisuje pliki, otwiera sesję interaktywną.
# ~/.zshrc or ~/.bashrc — every name starts with "cl" so nothing shadows a real commandalias clq='claude -p' # one-shot, read-only questionalias clc='claude -c' # continue the latest session in this directoryalias clr='claude -r' # resume picker; clr payment-retry filters by name
# Review the staged diff; reports only, never editsclrev() { git diff --cached | claude -p "Review this staged diff. Report only bugs, security issues and missing tests, each with file:line. If there are none, reply 'No findings' and nothing else."}
# Explain a file and its blast radiusclexplain() { claude -p "Explain what $1 does, which modules call it, and what breaks if its exported functions change. Read only $1 and the files that import it."}
# Write tests: interactive, because it edits files and runs themcltest() { claude -n "tests-$(basename "$1")" "Write tests for $1 following the nearest existing test file. Run them and show me the output."}Zanim je dodasz, uruchom type clq clc clr clrev clexplain cltest i upewnij się, że każda nazwa zwraca „not found”. Przekazywanie potokiem wyjścia buildów i testów do Claude opisuje strona o mistrzostwie w terminalu.
Jak zamienić powtarzany prompt w skill
Dział zatytułowany „Jak zamienić powtarzany prompt w skill”Skrót powłoki działa poza sesją; wewnątrz sesji ten sam prompt powinien być skillem. Zapisz poniższy plik jako .claude/skills/rev-staged/SKILL.md i zacommituj go, a każdy w zespole dostanie /rev-staged z identycznym brzmieniem (format skilla sprawdzony na Claude Code 2.1.283):
---description: Review the staged diff for bugs, security issues and missing testsdisable-model-invocation: trueallowed-tools: Bash(git diff *)---Review this staged diff. Report only bugs, security issues and missing tests,each with file:line. If there are none, reply "No findings" and nothing else.
!`git diff --cached`O zachowaniu skilla decydują trzy linie:
- Linia
!`git diff --cached`uruchamia się, zanim Claude zobaczy skill, więc diff przychodzi wklejony w treść i Claude nie traci tury na jego pobranie. disable-model-invocation: truesprawia, że skill uruchamiasz tylko ty, a do tego czasu nie ma go w kontekście Claude, więc w sesjach, które go nie używają, nie kosztuje żadnych tokenów.allowed-toolsz góry zatwierdza wstrzykniętegit diffna czas tego jednego wywołania; bez tego wstrzyknięcie może się zatrzymać i czekać na zgodę.
Błędy we frontmatterze nie dają żadnego komunikatu, dlatego strona o własnych poleceniach i skillach dodaje lint plików skilli w CI. Skill wybierz, gdy prompt działa w trakcie sesji, a skrót powłoki, gdy chcesz odpowiedzi bez otwierania sesji.
Wyjście, któremu skrypt może zaufać
Dział zatytułowany „Wyjście, któremu skrypt może zaufać”Gdy odpowiedź Claude zasila kolejne polecenie, poproś o JSON i sprawdź jego kształt mechanicznie. --output-format działa tylko z -p.
# Plain answer as a string: read .resultclaude -p "List every HTTP route in src/api with its method and handler file, one per line." \ --output-format json | jq -r '.result'Jeśli potrzebujesz pól, na których możesz polegać, dodaj --json-schema. Zwalidowany obiekt trafia do structured_output, obok metadanych uruchomienia:
claude -p "Find source files in src/api that have no matching test file." \ --output-format json \ --max-budget-usd 1 \ --json-schema '{"type":"object","properties":{"untested":{"type":"array","items":{"type":"string"}}},"required":["untested"]}' \ > untested.json
jq -e '.structured_output.untested | type == "array"' untested.json >/dev/null \ && jq -r '.structured_output.untested[]' untested.jsonjq -e kończy się kodem różnym od zera, gdy sprawdzenie nie przejdzie, więc skrypt zatrzymuje się, zamiast działać na zniekształconej odpowiedzi. --max-budget-usd ogranicza koszt uruchomienia w trybie print, które wymknęło się spod kontroli, a ten sam JSON zawiera total_cost_usd, jeśli chcesz go logować. Zadania CI i większe potoki opisuje strona o automatyzacji Claude Code.
Zachowaj bramkę, która dowodzi wyniku
Dział zatytułowany „Zachowaj bramkę, która dowodzi wyniku”Najbardziej kuszący trik to przestać uruchamiać testy. Rób to tylko w poniższej formie: zawężone testy w trakcie iteracji, pełna bramka, zanim cokolwiek zostanie uznane za skończone. Wtedy weryfikujesz zachowanie na podstawie wyniku testów, a nie czytając każdej zmienionej linii.
# Test scope (CLAUDE.md)- While iterating, run only the tests for files you changed: npx vitest run <path>- Before you say a task is done, run: npm run typecheck && npm run lint && npm test- Report each command with its exit status. Never call a task done with a failing or skipped test.Tę regułę wspierają trzy warstwy:
- Hook
Stopmoże uruchamiać bramkę automatycznie, gdy Claude kończy turę, więc reguła nie zależy już od tego, czy model o niej pamięta. Zobacz automatyzację hookami. /code-reviewprzed commitem daje drugie przejście nastawione na błędy, nie na styl. Zobacz automatyzację code review.- CI uruchamia te same polecenia, więc lokalny skrót nigdy nie jest ostatnią kontrolą.
Szybkie zyski z wiersza poleceń
Dział zatytułowany „Szybkie zyski z wiersza poleceń”Wszystkie poniższe flagi pochodzą z claude --help w wersji 2.1.283.
# Give Claude tool access to a sibling repository in the same sessionclaude --add-dir ../shared-components
# Fall back to other models when the primary is overloaded or unavailableclaude --model opus --fallback-model sonnet
# Resume the session linked to pull request 123 (or pick from linked sessions)claude --from-pr 123--fallback-model przyjmuje listę rozdzieloną przecinkami i ponawia próbę z modelem głównym na początku każdej tury użytkownika, więc zastępstwo trwa jedną turę, a nie całą sesję. Jeśli tura na modelu zapasowym dała słabszą odpowiedź, powtórz ten krok, gdy model główny wróci. Więcej flag i poleceń zbierają strony funkcje, których jeszcze nie próbowałeś i mistrzostwo w poleceniach slash.
Kiedy triki wydajności w Claude Code obracają się przeciwko tobie
Dział zatytułowany „Kiedy triki wydajności w Claude Code obracają się przeciwko tobie”| Objaw | Przyczyna | Jak wyjść |
|---|---|---|
cc (lub inny krótki alias) uruchamia Claude zamiast oczekiwanego narzędzia | Alias przesłania istniejące polecenie | unalias cc, nadaj skrótom unikalny prefiks, sprawdź przez type |
| Skrót nie zwraca nic przydatnego albo pisze, że nie mógł edytować | claude -p startuje w trybie Manual i nie dostanie zatwierdzenia | Skróty z -p trzymaj tylko do odczytu; te, które edytują, uruchamiaj interaktywnie |
| Wyczyściłeś nie tę sesję | /clear poszło przed notatką przekazania | /resume i wybierz starą sesję po nazwie; /rewind też potrafi wrócić do stanu sprzed /clear |
Po /compact Claude zapomina decyzję albo znów czyta pliki | Podsumowanie ją pominęło | Powtórz ją raz, a potem dopisz do instrukcji kompaktowania lub notatki przekazania |
| Claude edytuje bez czytania wywołujących i je psuje | Reguły zawężenia są za ciasne dla tego zadania | Poszerz prompt dla tego zadania („read callers of formatInvoiceTotal”); reguły deny zostaw tylko dla plików generowanych |
| Zawężone testy przechodzą, CI pada | Zmiana zepsuła kod poza testowaną ścieżką | Trzymaj pełną bramkę w CLAUDE.md i hook Stop; nigdy nie pozwól, by reguła zawężenia była jedyną regułą |
/rev-staged się nie pojawia albo Claude uruchamia go bez pytania | Literówka we frontmatterze albo otwierające --- nie jest w pierwszej linii, więc Claude Code go ignoruje | Popraw plik, uruchom sesję od nowa i dodaj lint skilli ze strony o własnych poleceniach i skillach |
| Skrypt zadziałał na niedokończonej odpowiedzi | Wyjście parsowane bez schematu | Dodaj --json-schema i sprawdzenie jq -e przed kolejnym poleceniem |
Dokąd dalej z wydajnością w Claude Code
Dział zatytułowany „Dokąd dalej z wydajnością w Claude Code”- Wymaganie wstępne: skonfiguruj Claude Code, żeby ustawienia i
CLAUDE.mdbyły na miejscu. - Dalej: mistrzostwo w terminalu — układ, potoki i praca na wielu sesjach.
- Kontekst w szczegółach: okna kontekstu i limity tokenów.
- Wydatki w skali zespołu: kontrola kosztów.
- Te same nawyki w Codex: triki wydajności w Codex.