Jak czytać ten przewodnik
…i skąd żarty, suwaki i fałszywy terminalTo nie jest lista funkcji Claude Code. Dokumentacja już to ma, i zmienia się co tydzień.
Ten przewodnik jest o mechanizmach: dlaczego Claude czyta pięć plików, zanim edytuje jeden, dlaczego długa sesja
robi się gorsza, dlaczego reguła w CLAUDE.md jest prośbą, a hook — gwarancją. Kiedy rozumiesz mechanizm,
każda nowa funkcja to po prostu nowe pokrętło w maszynie, którą już znasz.
Droga od zera do eksperta ma cztery etapy. Rozdziały 1–3 budują model mentalny (pętla, terminal, kontekst). Rozdziały 4–8 to codzienne umiejętności (pamięć, uprawnienia, planowanie, prompting, cofanie). Rozdziały 9–12 to warstwa rozszerzeń (skille, subagenci, hooki, MCP, pluginy). Rozdziały 13–16 to warstwa eksperta (sesje równoległe, CI, wybór modelu, nawyki). Każdy rozdział ma jeden interaktywny rysunek: klikaj przyciski, psuj rzeczy, naciśnij ↺ Reset.
Zanim zaczniesz: gdybyś musiał zaprojektować AI, która edytuje prawdziwe repozytorium, czym martwiłbyś się najbardziej? Złymi edycjami? Skasowanymi plikami? Zapominaniem, co robiła? Rosnącym rachunkiem? Zapisz swoją listę. Do rozdziału 16 każdy jej punkt będzie miał nazwaną funkcję, która istnieje właśnie po to.
Nie musisz zapamiętywać komend. Wpisz / w Claude Code, a pojawi się pełne menu; naciśnij
? przy pustym prompcie, by zobaczyć skróty. Zapamiętaj idee — menu przypomni Ci nazwy.
Fakty tutaj sprawdzono z oficjalną dokumentacją na code.claude.com/docs we wrześniu 2026; Claude
Code często wydaje nowe wersje, więc uruchom /release-notes, gdy coś wygląda inaczej.
Pętla agenta
to nie autouzupełnianie — to pracownik z rękamiModel czatu odpowiada. Agent działa. Claude Code owija model Claude w pętlę z narzędziami: model czyta Twoją prośbę, decyduje, które narzędzie wywołać (przeczytać plik, grep, edytować, uruchomić polecenie shell, pobrać URL), widzi wynik i decyduje ponownie. Powtarza, aż uzna zadanie za skończone — albo aż go przerwiesz.
Dokumentacja opisuje trzy fazy, które przenikają się nawzajem: zbierz kontekst, podejmij działanie, zweryfikuj wyniki. Najważniejsze zdanie w całym tym przewodniku wynika właśnie z tej pętli: Claude jest tak dobry, jak dobra jest jego zdolność do sprawdzenia własnej pracy. Jeśli istnieje test, build, linter albo zrzut ekranu, na który może spojrzeć, pętla zamyka się sama. Jeśli nie — Ty jesteś krokiem weryfikacji.
CLAUDE.md i automatyczna pamięć (rozdział 4). Czytanie najpierw to prawidłowe zachowanie — możesz je przyspieszyć,
wskazując pliki przez @ścieżka.- Claude Code = model + narzędzia + pętla: zbierz kontekst → działaj → zweryfikuj → powtórz.
- Poza CLAUDE.md i automatyczną pamięcią, na starcie nie wie nic o Twoim repozytorium; czytanie nie jest stratą czasu.
- Daj mu sposób weryfikacji (testy, build, zrzuty ekranu). Brak weryfikacji ⇒ wiarygodnie wyglądające błędy.
- Esc przerywa, pisanie w trakcie tury dodaje korektę do kolejki. Steruj wcześnie.
Twoja pierwsza sesja
instalacja, interfejsy i pięć magicznych prefiksówZainstaluj natywnym instalatorem i uruchom wewnątrz katalogu projektu:
# macOS, Linux, WSL
curl -fsSL https://claude.ai/install.sh | bash
# Windows PowerShell
irm https://claude.ai/install.ps1 | iex
cd my-project
claude # sesja interaktywna
claude "explain the auth flow" # start z promptem
claude -c # kontynuuj najnowszą rozmowę w tym katalogu
claude -r # wybierz starszą sesję do wznowienia
Ten sam silnik działa w kilku interfejsach: CLI w terminalu, rozszerzenia VS Code i JetBrains,
aplikacja Desktop, web pod claude.ai/code (sesje w chmurze, w piaskownicy), aplikacja mobilna i Slack. Dzielą
pliki CLAUDE.md Twojego repozytorium, ustawienia i serwery MCP. Z subskrypcją claude.ai możesz przenosić sesję między nimi: /desktop przekazuje
sesję z terminala do aplikacji Desktop, --teleport ściąga sesję z chmury do terminala, a
/remote-control pozwala sterować lokalną sesją z telefonu.
Wewnątrz prompta kilka znaków zmienia to, co wpisujesz, w coś innego. Naucz się ich, a już używasz Claude Code lepiej niż większość ludzi:
/ pokazuje każdą wbudowaną komendę, dołączoną skillę i
Twoje własne skille, filtrowane w miarę pisania.| Klawisz | Co robi | Kiedy używać |
|---|---|---|
| Esc | Przerywa bieżący krok | Claude idzie w złą stronę. Rób to wcześnie. |
| Esc Esc | Czyści szkic albo przy pustym polu otwiera menu cofania | Cofnięcie kilku ostatnich promptów (rozdział 8) |
| Shift+Tab | Przełącza tryby uprawnień | Przejście do plan mode albo accept-edits (rozdział 5) |
| Ctrl+G | Otwiera prompt (lub plan) w Twoim edytorze | Długie prompty, edycja planu |
| Ctrl+B | Wysyła działające zadania w tło | Długi build/test, na który nie chcesz czekać |
| Ctrl+O | Podgląd transkrypcji | Zobacz każde wywołanie narzędzia szczegółowo |
| Ctrl+T | Przełącza listę zadań Claude | Śledzenie postępu wieloetapowej pracy |
| Ctrl+V | Wkleja obraz | Zrzuty ekranu błędów, makiety do wdrożenia |
| Option/Alt+P · +T · +O | Zmiana modelu · przełącznik myślenia · przełącznik trybu fast | Rozdział 15 |
Chcesz, by Claude spojrzał na wynik git log --oneline -20 i podsumował, co zmieniło się w tym tygodniu.
Jaki jest najszybszy sposób, który nie każe Claude prosić o zgodę na uruchomienie gita?
Odpowiedź
Wpisz ! git log --oneline -20. Prefiks ! uruchamia
polecenie samodzielnie, dodaje jego wynik do rozmowy, a Claude na niego odpowiada. Bez prośby o uprawnienia, bo
to Ty go uruchomiłeś.
/komendy i skille,@wzmianka pliku,!shell, Esc stop, Esc Esc cofnij, Shift+Tab tryb.claude -ckontynuuje,claude -rwznawia; nazywaj sesje przez/renamealbo-n.- Jeden silnik, wiele interfejsów — sesje mogą przemieszczać się między terminalem, desktopem, webem i telefonem.
Okno kontekstu
jedyny zasób, którym musisz zarządzaćWszystko, co Claude „wie” w sesji, żyje w jego oknie kontekstu: prompt systemowy, definicje
narzędzi, Twój CLAUDE.md, opisy skilli, każda wiadomość, każdy przeczytany plik, każdy wynik polecenia.
Okno ma stały rozmiar. Gdy się zapełni, Claude Code kompaktuje: zastępuje starszą historię podsumowaniem.
Szczegóły giną w podsumowaniach.
A jest cichszy problem, zanim okno się zapełni: szum. Im więcej nieistotnych rzeczy siedzi w kontekście — dygresja z debugowania, trzy niepowiązane pytania, 2000-liniowy log — tym gorzej Claude trzyma się Twoich instrukcji. Doświadczeni użytkownicy traktują kontekst jak RAM w małej maszynie.
/context pokazuje Twoje realne zużycie jako kolorową siatkę; /autocompact ustawia, kiedy zaczyna się automatyczna kompaktacja.Dzisiejsi goście: /compact i /clear.
/compact focus on the API changes.CLAUDE.md, komunikatu commita. Nie do historii czatu. Wtedy czyszczenie nic nie kosztuje.Nie każdy kontekst jest równy. Narzędzia MCP ładują na starcie tylko swoje nazwy; pełne schematy są pobierane przy użyciu (tool search). Skille ładują tylko swoje opisy; treść ładuje się przy wyzwoleniu. Subagenci działają w swoim oknie i zwracają tylko podsumowanie. Hooki nic nie kosztują, chyba że coś wypisują. Dlatego rozdziały o rozszerzeniach wciąż pytają „gdzie to ląduje w kontekście?” — to zasada projektowa stojąca za nimi wszystkimi. Dla częściowej kompaktacji otwórz menu cofania (Esc Esc), wybierz wiadomość i wybierz Podsumuj od tego miejsca albo Podsumuj do tego miejsca.
- Kontekst jest skończony, a szum szkodzi, zanim się zapełni.
/context, by zobaczyć,/clearmiędzy niepowiązanymi zadaniami. /compact [focus]jedzie dalej z podsumowaniem;/btwpyta bez dodawania do historii.- Duże wyszukiwania → subagenci: ich czytanie zostaje w ich oknie.
- Utrwalaj decyzje w plikach, nie w czacie.
Pamięć: CLAUDE.md, reguły, automatyczna pamięć
jak Claude pamięta Twój projekt między sesjamiKażda sesja zaczyna się od zera — poza plikami, które Claude Code ładuje automatycznie. Głównym z nich jest
CLAUDE.md: zwykły markdown z komendami buildu, konwencjami i regułami „nigdy nie rób X”. Uruchom
/init raz, a Claude napisze pierwszą wersję, czytając Twoje repozytorium. Jest kilka poziomów i one się
sumują (nie nadpisują się nawzajem):
| Poziom | Lokalizacja | Do czego |
|---|---|---|
| Polityka zarządzana | /Library/Application Support/ClaudeCode/CLAUDE.md (macOS), /etc/claude-code/CLAUDE.md (Linux) | Reguły firmowe ustawione przez IT |
| Użytkownik | ~/.claude/CLAUDE.md | Twoje osobiste preferencje, wszystkie projekty |
| Projekt | ./CLAUDE.md albo ./.claude/CLAUDE.md | Konwencje zespołu — commituj to |
| Lokalny | ./CLAUDE.local.md | Twoje prywatne notatki dla tego repo — dodaj do gitignore |
| Zagnieżdżony | packages/web/CLAUDE.md | Ładowany leniwie, gdy Claude czyta pliki w tym folderze |
| Reguły | .claude/rules/*.md z globami paths: | Ładują się tylko przy dotknięciu pasujących plików |
| Automatyczna pamięć | zapisywana przez Claude per repo (indeks MEMORY.md) | Korekty i preferencje, których Claude się nauczył; pierwsze 200 linii / 25KB ładuje się co sesję |
Co powinno trafić do dobrego projektowego CLAUDE.md? Tylko to, czego Claude nie może się domyślić i czego będzie potrzebować w większości
sesji:
# Build i testy
- `pnpm dev` uruchamia aplikację, `pnpm test -- path/to/file` uruchamia jeden plik testowy
- Zawsze uruchom `pnpm typecheck` po zmianie typów
# Konwencje
- Używaj pnpm, nigdy npm. Tylko moduły ES.
- Handlery API mieszkają w src/api/, jeden plik na zasób. Zobacz @docs/api-style.md
# Pułapki
- Folder `legacy/` jest zamrożony. Nigdy go nie edytuj.
- Przy kompaktacji zachowaj listę zmodyfikowanych plików i komendy testów.
CLAUDE.md to rada, nie egzekwowanie. „Nigdy nie edytuj .env” w CLAUDE.md zwykle działa;
reguła uprawnień deny (rozdział 5) albo hook PreToolUse (rozdział 11) działa zawsze.
Jeśli reguła musi obowiązywać za każdym razem, nie zapisuj jej jako prozy.
AGENTS.md dla innych narzędzi. Duplikować?AGENTS.md samodzielnie albo razem z CLAUDE.md, albo możesz
zaimportować go z CLAUDE.md przez @AGENTS.md. Importy działają ze ścieżkami względnymi i bezwzględnymi, do
czterech poziomów głębokości./memory wylicza załadowane pliki, otwiera je w Twoim edytorze i przełącza automatyczną
pamięć. /context pokazuje, ile tokenów kosztują.- Poziomy się sumują: zarządzany + użytkownik + projekt + lokalny + zagnieżdżony + reguły + automatyczna pamięć.
- Trzymaj każdy CLAUDE.md krótki (<200 linii). Przenoś procedury do skilli, reguły specyficzne dla folderu do
.claude/rules/. - Błąd, który Claude popełnia dwa razy → jedna linijka w CLAUDE.md. Reguła, która nigdy nie może się złamać → hook albo reguła deny.
Uprawnienia i tryby
ile luzu dać agentowiKażde wywołanie narzędzia przechodzi przez bramkę. Dwie rzeczy decydują o wyniku: Twoje reguły uprawnień (jawne listy allow / ask / deny) i tryb uprawnień sesji (domyślne zachowanie dla wszystkiego, czego nie dotyczy żadna reguła).
| Tryb | Działa bez pytania | Najlepszy do |
|---|---|---|
default (ręczny) | Tylko odczyty | Wrażliwej pracy, uczenia się, co robi Claude |
acceptEdits | Odczyty, edycje plików i typowe komendy systemu plików (mkdir, touch, rm, rmdir, mv, cp, sed) wewnątrz katalogów roboczych | Iterowania nad kodem, który przeglądasz w gicie |
plan | Odczyty (tylko badanie, bez edycji) | Eksploracji i projektowania przed zmianą |
auto | Wszystko, z klasyfikatorem bezpieczeństwa w tle | Długich zadań, mniejszego zmęczenia promptami |
dontAsk | Odczyty i wcześniej zatwierdzone narzędzia; wszystko, co wymagałoby pytania, jest odmawiane | Zamkniętego CI i skryptów |
bypassPermissions | Wszystko, bez sprawdzeń | Wyłącznie izolowanych kontenerów / VM |
Shift+Tab przełącza default → acceptEdits → plan, a opcjonalne tryby, które włączyłeś,
wchodzą po planie. dontAsk nigdy nie jest w cyklu; uruchom go przez
--permission-mode dontAsk. Reguły żyją w settings.json pod permissions i są
sprawdzane w stałej kolejności: deny, potem ask, potem allow. Wygrywa pierwsze trafienie; specyficzność nie ma znaczenia.
auto widzi Twoje wiadomości i działania Claude (nie wynik narzędzi), a zapisy do chronionych
ścieżek (jak .git) mają własne reguły. Składnia reguł jest prawdziwa — wypróbuj ją w /permissions.// .claude/settings.json (dzielone z zespołem — commituj to)
{
"permissions": {
"allow": ["Bash(npm run *)", "Bash(git commit *)"],
"ask": ["Bash(git push *)"],
"deny": ["Read(./.env)", "Read(./secrets/**)", "Bash(curl *)"]
}
}
Ustawienia też mają warstwy. Dla pojedynczego klucza wyższa warstwa wygrywa — ale klucze list, takie jak permissions.allow i deny, są scalane
między warstwami: polityka zarządzana > flagi wiersza poleceń
(--settings) > .claude/settings.local.json (Ty, ten projekt) >
.claude/settings.json (zespół) > ~/.claude/settings.json (Ty, wszędzie). Nie wiesz,
gdzie należy klucz? Zapytaj: /update-config allow npm test — albo uruchom /fewer-permission-prompts,
które skanuje Twoją historię i proponuje listę allow bezpiecznych komend tylko do odczytu.
Reguła allow nie może wyciąć wyjątku z reguły deny. Przy deny: Bash(aws *),
allow: Bash(aws s3 ls) nigdy się nie odpali. I stawiaj * po subkomendzie:
Bash(git log *) zezwala tylko na git log …; Bash(git *) zezwala też na git push --force.
--dangerously-skip-permissions należy do jednorazowego kontenera, nigdy do Twojego laptopa.
Dla mniejszej liczby pytań i prawdziwego bezpieczeństwa na Twojej maszynie wypróbuj piaskownicę Bash: /sandbox uruchamia
komendy shell z izolacją systemu plików i sieci na poziomie OS (macOS, Linux, WSL2), a jej tryb auto-allow pozwala
komendom w piaskownicy działać bez pytania. Piaskownica ogranicza, co komenda może zrobić; uprawnienia ograniczają, co
Claude może próbować. Obrona w głąb używa obu.
- Reguły: deny → ask → allow, wygrywa pierwsze trafienie. Tryb decyduje o wszystkim, czego żadna reguła nie dotyczyła.
- Ucz się w
default, iteruj wacceptEdits, projektuj wplan, jedź długo wauto, skryptuj wdontAsk. - Reguły zespołu w
.claude/settings.json, osobiste wsettings.local.json.
Zbadaj → Zaplanuj → Koduj → Zweryfikuj
przepływ pracy, który oszczędza najwięcej czasuNajczęstszy ruch początkującego to „zaimplementuj funkcję X” jako pierwszy prompt. Claude to zrobi — i rozwiąże problem, który zgadł, nie ten, który masz. Zalecany przepływ pracy oddziela badanie od wykonania:
- Zbadaj (plan mode): „przeczytaj
src/authi wyjaśnij, jak odświeżane są sesje.” Bez edycji. - Zaplanuj: „zaplanuj, jak dodać logowanie przez Google. Które pliki się zmienią? Jaka jest migracja?” Naciśnij Ctrl+G, by samodzielnie edytować plan w swoim edytorze. Zatwierdzenie planu wychodzi z plan mode.
- Koduj: Claude implementuje zgodnie z planem, odhaczając kolejne punkty.
- Zweryfikuj i commituj: testy, typecheck, rzut oka na
/diff, potem „commituj z jasnym komunikatem i otwórz PR”.
Kiedy pominąłbyś plan mode całkowicie? (Podpowiedź: zasada z samej dokumentacji — jeśli potrafisz opisać diff jednym zdaniem, pomiń plan.)
SPEC.md.” Potem /clear i zacznij świeżą sesję, która implementuje
SPEC.md. Spec to przekazanie — czysty kontekst, pełna intencja.opusplan używa Opusa w plan mode i Sonneta do
wykonania.- Badaj i planuj w plan mode (Shift+Tab albo
/plan), edytuj plan przez Ctrl+G. - Planowanie zwraca się przy pracy na wielu plikach albo niepewnej; pomiń je dla diffów na jedno zdanie.
- Dla dużych funkcji: wywiad →
SPEC.md→/clear→ implementacja.
Prompting, który działa
usuń domysły, dodaj linię metyClaude potrafi wywnioskować wiele, ale nie to, co masz w głowie. Każdy fakt, który pominiesz, staje się domysłem, a każdy domysł to szansa na rozwiązanie złego problemu. Dobry prompt nie jest długi — jest konkretny: gdzie patrzeć, co jest nie tak, co znaczy „gotowe” i czego nie ruszać.
- Pytanie wdrożeniowe: „Jak tutaj działa logowanie? Prześledź jedno żądanie z
@src/server.tsdo bazy danych.” - Błąd z dowodami: wklej stack trace albo zrzut ekranu (Ctrl+V), powiedz, jak odtworzyć, poproś najpierw o test, który nie przechodzi.
- Podążaj za wzorcem: „Dodaj endpoint
/invoicesjak@src/api/orders.ts.” - TDD: „Napisz testy dla X, potwierdź, że nie przechodzą, commituj je. Potem implementuj, aż przejdą, bez zmieniania testów.”
- Iteracja UI: daj obraz makiety, poproś Claude o zrzut ekranu wyniku i porównanie, iteruj 2–3 razy.
- Wlej dane rurą:
cat error.log | claude -p "find the root cause".
Możesz poprosić o więcej myślenia zwykłymi słowami („pomyśl solidnie o przypadkach brzegowych”) albo podnieść
poziom wysiłku sesji przez /effort (rozdział 15). Bogaty kontekst bije sprytne sformułowania: URL do dokumentacji,
obraz, pliki wspomniane przez @, logi przesłane rurą. Jeśli Claude ma pobrać dokumentację, zezwól na domenę regułą typu
WebFetch(domain:docs.stripe.com).
- Gdzie (
@plik) + objaw + wzorzec do naśladowania + weryfikacja + ograniczenia. - Daj Claude linię mety, którą sam może sprawdzić: test, komendę, zrzut ekranu.
- Dwie nieudane korekty z rzędu →
/cleari napisz lepszy pierwszy prompt.
Sesje, checkpointy i cofanie
przycisk cofnij dla agentaClaude Code zapisuje checkpoint przed każdym promptem: stan rozmowy plus zrzuty
plików, które Claude edytował. Naciśnij Esc Esc przy pustym prompcie (albo uruchom /rewind), wybierz
wiadomość i zdecyduj: przywróć kod, przywróć rozmowę, albo obie — lub podsumuj od tego miejsca. To sprawia, że
eksperymenty są tanie: pozwól Claude spróbować śmiałego podejścia i cofnij, jeśli Ci się nie spodoba.
rm, mv, cp), przez Ciebie poza sesją, albo przez inne sesje nie są
przywracane. Checkpointy nie zastępują gita.| Komenda | Co robi |
|---|---|
claude -c / --continue | Kontynuuje najnowszą rozmowę w tym katalogu |
claude -r / /resume | Wybiera dowolną starszą sesję (po nazwie albo ID) |
/rename, claude -n name | Nazywa sesję, by móc ją wznowić po nazwie |
/branch | Rozgałęzia rozmowę w tym miejscu, by spróbować czegoś innego |
--fork-session | Wznawia do nowego ID sesji, zostawiając oryginał nietknięty |
/rewind, Esc Esc | Przywraca kod i/lub rozmowę do checkpointu, albo podsumowuje od tego miejsca |
/diff | Przegląda dotychczasowe zmiany w drzewie roboczym |
/export, /copy | Zapisuje rozmowę / kopiuje ostatnią odpowiedź |
Checkpointy to lokalne cofanie, git to historia. Commituj przy każdym zielonym stanie („commituj to z opisowym
komunikatem” to całkiem dobry prompt). Wtedy nawet rm -rf przez Bash jest o jeden git checkout dalej.
- Każdy prompt = checkpoint. Esc Esc → przywróć kod, rozmowę, albo obie.
- Zmiany plików zrobione przez Bash nie są śledzone. Commituj często.
- Nazywaj sesje, wznawiaj przez
-c/-r, rozgałęziaj przez/branch.
Skille: wielorazowa wiedza
napisz playbook raz, ładuj go tylko gdy potrzebaSkilla to folder z SKILL.md: frontmatter YAML plus instrukcje w markdown,
opcjonalnie ze skryptami i plikami referencyjnymi obok. Wywołujesz ją jako komendę (/deploy staging),
albo Claude ładuje ją sam, gdy Twoje zadanie pasuje do jej description. Niestandardowe slash-komendy zostały scalone
ze skillami: stary .claude/commands/deploy.md nadal działa i też tworzy /deploy.
Sztuczka to stopniowe ujawnianie (progressive disclosure). Na starcie sesji w kontekście siedzą tylko nazwa i opis każdej skilli. Pełna treść ładuje się przy użyciu skilli; pliki, do których się odnosi, ładują się tylko, gdy Claude je otworzy. Więc możesz mieć pięćdziesiąt skilli i płacić za pięćdziesiąt krótkich opisów.
.claude/skills/release-notes/SKILL.md
---
name: release-notes
description: Draft release notes from merged PRs since the last tag. Use when asked for a changelog or release notes.
disable-model-invocation: true # tylko ja mogę ją wywołać (/release-notes)
allowed-tools: Bash(git log *) Bash(gh pr list *)
context: fork # uruchom w forkowanym subagencie, zwróć podsumowanie
---
1. Find the last tag with `git describe --tags --abbrev=0`.
2. List merged PRs since then …
3. Group by feat / fix / chore. Output markdown. See [template.md](template.md).
/skills wylicza Twoje skille; /skill-doctor pokazuje, ile
każda kosztuje w kontekście i jak często się wyzwala.| Frontmatter | Efekt |
|---|---|
description | Jak Claude decyduje o jej użyciu. Powiedz co i kiedy. Mgliste = złe wyzwalacze. |
disable-model-invocation: true | Tylko Ty możesz ją uruchomić. Do skutków ubocznych (deploy, publikacja). Zero kosztu kontekstu do momentu użycia. |
user-invocable: false | Tylko Claude jej używa (wiedza w tle); ukryta z menu /. |
allowed-tools | Narzędzia wcześniej zatwierdzone na czas działania skilli |
context: fork + agent | Uruchamia w forkowanym subagencie; wraca tylko wynik |
model, effort | Nadpisuje model / wysiłek na czas aktywności skilli |
paths | Automatyczne ładowanie tylko przy pracy z pasującymi plikami |
arguments, argument-hint | Nazwane argumenty ($name) i podpowiedź autouzupełniania |
hooks | Hooki rejestrowane przy wywołaniu skilli |
Gdzie żyją skille: ~/.claude/skills/ (Ty, wszystkie projekty), .claude/skills/
(repozytorium — commituj to), zarządzane (Twoja firma) i pluginy (z przestrzenią nazw jak /my-plugin:review).
Claude Code dołącza też skille za darmo: /code-review, /simplify,
/debug, /batch, /loop, /run, /verify,
/doctor, /fewer-permission-prompts i więcej.
Dzisiejsi goście: CLAUDE.md i Skilla.
- Skilla =
SKILL.md+ opcjonalne pliki. Wywoływana przez/nazwaalbo ładowana automatycznie po opisie. - Tylko opisy kosztują kontekst do użycia. Pisz ostre opisy.
- Trzeci raz wklejasz te same instrukcje → zrób z tego skillę.
- Skutki uboczne →
disable-model-invocation: true. Ciężka praca →context: fork.
Subagenci: deleguj, nie zanieczyszczaj
świeży mózg do każdej pobocznej sprawySubagent to osobna instancja Claude z własnym oknem kontekstu, własnym promptem systemowym i opcjonalnie własnymi narzędziami, modelem i uprawnieniami. Sesja główna przekazuje mu zadanie; on czyta, szuka, uruchamia różne rzeczy i zwraca tylko podsumowanie. 40 przeczytanych plików nigdy nie trafia do Twojego głównego kontekstu.
Claude sam używa wbudowanych subagentów: Explore (wyszukiwanie w kodzie tylko do odczytu), Plan (badanie podczas plan mode) i general-purpose (eksploracja + modyfikacja, wieloetapowe). Możesz też poprosić: „użyj subagentów, by zbadać, jak płatności, autoryzacja i e-maile każdy obsługuje ponowne próby.” Kilku może działać równolegle.
.claude/agents/security-reviewer.md
---
name: security-reviewer
description: Reviews diffs for injection, authz and secret-handling bugs. Use after changes to auth or API code.
tools: Read, Grep, Glob, Bash
model: opus
permissionMode: plan # tylko do odczytu
memory: project # przechowuje własne notatki między sesjami
---
You are a senior application security engineer. For each finding give file:line,
the exploit scenario, and the minimal fix. No style comments.
Inne przydatne pola: skills (wstępne ładowanie pełnych skilli), mcpServers,
hooks, maxTurns, effort, isolation: worktree (praca na własnej kopii
repozytorium), background: true. Umieszczaj agentów w .claude/agents/ (zespół) albo
~/.claude/agents/ (Ty). Najłatwiejszy sposób napisania jednego: poproś Claude, by go stworzył.
context: fork vs subagent — jaka jest różnica?context: fork uruchamia treść skilli wewnątrz pracownika; pole subagenta
skills: wstępnie ładuje treść do pracownika. Łączą się ze sobą./fork, /subtask) kopiuje
całą dotychczasową rozmowę.Właśnie skończyłeś funkcję. Zaprojektuj krok „recenzji adwersarialnej”, który nie dzieli martwych punktów Twojej sesji.
Odpowiedź
Uruchom świeżego subagenta-recenzenta (albo drugą sesję), który widzi tylko diff i
spec, nie Twoją rozmowę — nie może odziedziczyć założeń, które poczyniłeś podczas budowania. Albo uruchom
/code-review, które robi dokładnie to; /code-review ultra uruchamia głęboką wieloagentową recenzję w
chmurze.
- Subagent = izolowany kontekst + rola + narzędzia + model. Zwraca podsumowanie.
- Użyj do badań, które dużo czytają, równoległych niezależnych pytań i bezstronnej recenzji.
- Definiuj w
.claude/agents/*.md; ograniczajtoolsipermissionModedla bezpieczeństwa.
Hooki: gwarancje, nie prośby
kod, który uruchamia się przy każdym zdarzeniu cyklu życiaWszystko do tej pory to rada, którą model interpretuje. Hook jest inny: sam Claude Code
uruchamia Twoją komendę shell (albo wywołanie HTTP, narzędzie MCP, prompt lub subagenta), gdy wyzwala się zdarzenie cyklu życia. Zawsze
się uruchamia. Może blokować działania, wstrzykiwać kontekst albo po prostu logować. Konfiguruj hooki w settings.json;
/hooks pozwala je przeglądać (tylko do odczytu).
{
"hooks": {
"PreToolUse": [{ "matcher": "Bash",
"hooks": [{ "type": "command", "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/block-dangerous.sh" }] }],
"PostToolUse": [{ "matcher": "Edit|Write",
"hooks": [{ "type": "command", "command": "npx prettier --write \"$(jq -r .tool_input.file_path)\"" }] }]
}
}
Hook dostaje ładunek JSON na stdin (nazwa narzędzia, dane wejściowe, informacje o sesji). Kod wyjścia
0 = jedź dalej; kod wyjścia 2 = zablokuj, a stderr wraca jako powód (dla
PreToolUse, Claude go czyta i dostosowuje się). Dla precyzyjniejszej kontroli, wypisz JSON z decyzją.
rm -rf ./build ~/ (ups — zabłąkane ~/).PermissionRequest,
PostToolUseFailure, SubagentStart/Stop, PreCompact/PostCompact,
Notification, FileChanged, CwdChanged, WorktreeCreate i więcej.| Zdarzenie | Klasyczne użycie |
|---|---|
SessionStart | Wstrzyknij kontekst: bieżący sprint, otwarte issue, konfiguracja środowiska |
UserPromptSubmit | Dodaj kontekst albo odrzuć prompty (np. wyciekłe sekrety) |
PreToolUse | Blokuj niebezpieczne komendy, chroń pliki, egzekwuj reguły |
PermissionRequest | Automatycznie zatwierdź albo odmów prośbę o uprawnienia według polityki |
PostToolUse | Formatuj, lintuj, typecheckuj po edycjach — exit 2 (stderr) albo JSON additionalContext przekazuje problemy z powrotem do Claude |
Stop | Uruchom testy, zanim Claude może skończyć; powiadom Cię |
Notification | Ping na desktopie / telefonie, gdy Claude czeka na wejście |
PreCompact | Zapisz kopię zapasową transkrypcji przed kompaktacją |
SessionEnd | Sprzątanie, logowanie, metryki |
Hooki działają z uprawnieniami Twojego użytkownika, automatycznie, przy każdym pasującym zdarzeniu. Przeglądaj każdy skopiowany hook
(i każdy plugin, który dostarcza hooki) tak, jak przeglądałbyś skrypt, który wpuszczasz do bash. Cytuj zmienne, używaj
ścieżek bezwzględnych przez $CLAUDE_PROJECT_DIR i trzymaj je szybkie — wolny hook PostToolUse spowalnia
każdą edycję.
- Hook = deterministyczny kod przy zdarzeniu cyklu życia. CLAUDE.md = prośba; hook = gwarancja.
- Exit 2 blokuje (
PreToolUse), a stderr staje się informacją zwrotną dla Claude; wynik JSON może dodać kontekst. Zwykły stdout większości zdarzeń trafia tylko do logu debugowania. - Najlepsze hooki na start: formatowanie po edycji, blokowanie niebezpiecznego Bash, powiadamianie przy oczekiwaniu.
MCP i pluginy
nowe ręce dla agenta, spakowane dla zespołuMCP (Model Context Protocol) łączy Claude z systemami zewnętrznymi jako narzędziami: GitHub, Sentry, Linear, Notion, Twoja baza danych, przeglądarka. Jeśli wciąż kopiujesz dane z karty przeglądarki do czatu, ten system chce być serwerem MCP.
# zdalny serwer HTTP (OAuth w /mcp)
claude mcp add --transport http notion https://mcp.notion.com/mcp
# lokalny serwer stdio: wszystko po -- to komenda serwera
claude mcp add --transport stdio db -- npx -y @bytebase/dbhub --dsn "postgresql://readonly:…@localhost:5432/app"
# udostępnij zespołowi przez .mcp.json
claude mcp add --scope project --transport http sentry https://mcp.sentry.dev/mcp
/mcp pokazuje status i obsługuje OAuth; /context all pokazuje, ile tokenów zużywa każde załadowane narzędzie MCP.Zasięgi MCP nadpisują się po nazwie: lokalny > projekt > użytkownik. Serwery lokalne i użytkownika są zapisane w
~/.claude.json; serwery projektu w .mcp.json w korzeniu repozytorium, które koledzy z zespołu zatwierdzają przy pierwszym użyciu. Nigdy nie commituj tam sekretów — użyj
rozwinięcia ${ENV_VAR}.
Pluginy to warstwa pakowania: jedna instalowalna jednostka łącząca skille, subagentów, hooki, serwery MCP (i serwery inteligencji kodu LSP). Dodaj marketplace raz, potem instaluj z niego:
/plugin marketplace add your-org/claude-plugins
/plugin install commit-commands@claude-plugins-official
/plugin # przeglądaj, włączaj, wyłączaj, wybierz zasięg
MCP daje dostęp; skilla daje know-how. Najsilniejsze połączenie to oba naraz: serwer MCP do Twojej bazy danych plus skilla, która dokumentuje Twój schemat, nazewnictwo i reguły „nigdy nie odpytuj prod bez LIMIT”. Dla języków typowanych, plugin code intelligence (LSP) pozwala Claude skakać do definicji i widzieć błędy typów po każdej edycji, zamiast grepować — mniej odczytów plików, mniej kontekstu.
Serwer MCP, który pobiera niezaufaną treść (strony internetowe, issue, e-maile), może nieść prompt injection. Używaj serwerów, którym ufasz, trzymaj włączone prośby o uprawnienia dla narzędzi ze skutkami ubocznymi i preferuj poświadczenia tylko do odczytu.
- MCP = zewnętrzne narzędzia.
claude mcp add, zasięgi lokalny > projekt > użytkownik,/mcpdo zarządzania. - Tylko nazwy narzędzi kosztują kontekst do momentu użycia.
- Pluginy łączą skille + agentów + hooki + MCP; udostępniaj je przez marketplace, gdy 2. repozytorium potrzebuje tej samej konfiguracji.
Praca równoległa i zadania długo działające
od jednego agenta do małego zespołuGdy jedna sesja już dobrze działa, kolejnym wąskim gardłem jesteś Ty czekający. Claude Code ma kilka sposobów na uruchomienie więcej niż jednej rzeczy naraz. Pytanie, które je odróżnia: kto trzyma plan?
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1),
rutyny i widok agentów są w podglądzie badawczym, dynamiczne przepływy pracy wymagają płatnego planu albo dostępu do API / dostawcy chmury (na Pro włącz je w /config).| Podejście | Jak | Kto decyduje, co dalej |
|---|---|---|
| Subagenci | „użyj subagentów do…”, /subtask | Claude, tura po turze |
| Worktrees | claude -w feature-auth — własny checkout pod .claude/worktrees/ | Ty, jedna sesja na każdy |
| Sesje w tle | /background, claude agents (widok agentów), Ctrl+B dla zadań | Ty wysyłasz, sprawdzasz później |
| Zespoły agentów | Lider + koledzy ze wspólną listą zadań i wymianą wiadomości | Agent-lider |
| Dynamiczne przepływy pracy | Poproś o „workflow” | Skrypt napisany przez Claude |
/batch | Dołączona skilla: dzieli dużą zmianę między subagentów w ich własnych worktrees | Claude, zgodnie ze skillą |
/goal | „aż wszystkie testy przejdą” — wykonuje kolejne tury, aż sprawdzenie powie, że gotowe | Warunek ukończenia |
/loop | /loop 5m check the deploy — powtarza, dopóki sesja jest otwarta | Timer |
| Rutyny | /schedule — uruchomienia w chmurze na cron, API albo zdarzenia GitHub, laptop zamknięty | Wyzwalacz |
claude -w search,claude -w billing-fix,claude -w docsw trzech kartach terminala — każda dostaje własny branch i pliki.- Zaplanuj każdą w plan mode, zatwierdź, przełącz na
autoalboacceptEdits. - Ustaw hook
Notification, by dostać pinga, gdy któraś Cię potrzebuje; przetwarzaj kolejkę. - Każda sesja otwiera własny PR; recenzuj przez
/code-revieww świeżej sesji.
Równolegli agenci mnożą pracę przy recenzji, nie tylko wyjście. Dwie sesje edytujące te same pliki w jednym checkoucie będą walczyć — izoluj przez worktrees. A więcej agentów kosztuje więcej tokenów: zwłaszcza zespoły agentów używają osobnego kontekstu na każdego kolegę.
- Poboczna sprawa → subagent. Osobne funkcje → worktrees. Debata → zespół agentów. Ogromny sprawdzany krzyżowo fan-out → workflow; duża mechaniczna zmiana →
/batch. - Jedź, aż gotowe →
/goal. Odpytuj →/loop. Laptop zamknięty → rutyna przez/schedule.
Tryb headless i CI
Claude Code jako narzędzie uniksoweclaude -p "prompt" uruchamia jedno zadanie nieinteraktywnie i wypisuje wynik. Wszystko,
czego się nauczyłeś, nadal działa — CLAUDE.md, skille, hooki, MCP — więc wpasowuje się w skrypty, sprawdzenia pre-commit i CI.
# jednorazowe, wlej rurą, wypisz JSON
git diff main | claude -p "review for bugs; reply as a list" --output-format json
# wynik strukturalny walidowany względem schematu (korzeń musi być obiektem)
claude -p "list TODOs" --output-format json \
--json-schema '{"type":"object","properties":{"todos":{"type":"array","items":{"type":"string"}}},"required":["todos"]}' \
| jq '.structured_output'
# zamknięte dla CI: wylistowane narzędzia + odczyty / komendy tylko do odczytu; wszystko, co wymagałoby pytania, jest odmawiane
claude -p "run the tests and fix failures" \
--permission-mode dontAsk --allowedTools "Read" "Edit" "Bash(npm test *)" \
--max-turns 20 --max-budget-usd 5
# rozgałęzienie po plikach
git ls-files -z 'src/*.js' | while IFS= read -r -d '' f; do # * w gicie pasuje też przez /
claude -p "migrate $f from CommonJS to ESM, keep behavior" --allowedTools "Read" "Edit"
anthropics/claude-code-action@v1. Uruchom /install-github-app raz: instaluje
aplikację, dodaje sekret i wypycha branch z plikami workflow, otwierając gotowy do stworzenia PR w Twojej przeglądarce;
po jego stworzeniu i scaleniu, @claude w komentarzu do issue albo PR
też wyzwala Claude. Workflow z prompt działa w trybie automatyzacji i zapisuje wyniki do
logu uruchomienia, chyba że prompt każe Claude opublikować, a ma narzędzie, które może skomentować.--output-format stream-json wysyła zdarzenia na bieżąco (dla dashboardów i botów).
--bare pomija automatyczne wykrywanie hooków, skilli, pluginów, MCP i CLAUDE.md dla powtarzalnych skryptów.
--append-system-prompt dodaje instrukcje. -c -p kontynuuje rozmowę w skrypcie. Dla
pełnej kontroli (callbacki zatwierdzania narzędzi, natywne obiekty) użyj Agent SDK w Pythonie albo TypeScript — to
ten sam silnik.
-p+--output-format json|stream-json+--json-schemadla maszyn.- CI:
--permission-mode dontAsk+ dokładna lista--allowedTools+--max-turns/--max-budget-usd. - GitHub:
/install-github-app; uruchomienia w chmurze na harmonogram albo zdarzenia: rutyny.
Modele, wysiłek i koszt
wydawaj myślenie tam, gdzie się liczyDwa pokrętła decydują, jak mocno myśli Claude. Model (/model, --model,
Option/Alt+P) wybiera mózg; poziom wysiłku (/effort, --effort) wybiera, ile
rozumuje na krok: low, medium, high, xhigh, max.
Aliasy śledzą zalecaną wersję dla Twojego dostawcy: haiku, sonnet, opus,
fable, best; plus opusplan (Opus do planowania, Sonnet do wykonania) i
warianty [1m] dla okna 1M tokenów.
| Sugerowane | |
| Głębokość rozumowania | |
| Szybkość | |
| Zużycie tokenów |
high w większości modeli (Opus 5.5 domyślnie ma
medium). Tryb fast uruchamia ten sam model Opus z szybszym wynikiem w wyższej cenie, nie mniejszy model./usage (alias /cost) pokazuje koszt sesji i limity planu;
/context pokazuje, co zapełnia okno; niestandardowy pasek statusu (/statusline) może pokazywać
model, % kontekstu i koszt cały czas.- Model = który mózg; wysiłek = jak długo myśli. Podnoś oba tylko dla projektowania i trudnego debugowania.
opusplan: mocne planowanie, tańsze wykonanie. Subagenci mogą używaćmodel: haikudo szukania.- Obserwuj
/usagei/context; higiena kontekstu to jedna z największych oszczędności.
Nawyki eksperta i anty-wzorce
różnica to głównie dyscyplinaEksperci nie znają sekretnych komend. Budują swoją konfigurację z czasem, każdy element wyzwolony przez prawdziwą irytację, i trzymają sesje czyste. Oficjalna dokumentacja wylicza kolejność, w jakiej większość zespołów dodaje rzeczy:
| Gdy to się zdarza… | …dodaj to |
|---|---|
| Claude myli konwencję albo komendę dwa razy | Linijka w CLAUDE.md |
| Wciąż prosisz o krótsze / bardziej wyjaśnione odpowiedzi | Styl wyjścia (/output-style) |
| Wpisujesz ten sam prompt startowy ponownie | Skilla wywoływana przez użytkownika |
| Wklejasz ten sam playbook po raz trzeci | Skilla |
| Kopiujesz dane z karty przeglądarki, której Claude nie widzi | Serwer MCP |
| Poboczne zadanie zalewa czat wynikiem | Subagent |
| Coś musi się dziać za każdym razem | Hook |
| Drugie repozytorium potrzebuje tej samej konfiguracji | Plugin |
- Zacznij czysto: jedno zadanie na sesję, nazwaną (
claude -n billing-bug). - Badaj w plan mode z plikami
@; dla dużej pracy: wywiad →SPEC.md. - Daj linię mety (test / komenda / zrzut ekranu); przełącz na
acceptEditsalboauto. - Steruj wcześnie przez Esc; cofaj złe ścieżki zamiast się z nimi spierać.
- Zweryfikuj: testy,
/diff,/code-revieww świeżym kontekście. Commituj przy zielonym. - Zbieraj plon: zamień powtarzającą się korektę w linijkę CLAUDE.md, skillę albo hook.
/clear.
- Rozwijaj swoją konfigurację z prawdziwych wyzwalaczy; przycinaj CLAUDE.md bezlitośnie.
- Sesje-śmietniki, niekończące się korekty, rozdmuchany CLAUDE.md, brak weryfikacji, nieograniczona eksploracja — pięciu zabójców.
- Zawsze zamykaj pętlę: coś, co Claude może uruchomić, by udowodnić, że skończył.
Egzamin + ściągawka
sprawdź, co zostało w głowie14 pytań. Każde testuje mechanizm z rozdziałów, nie tylko nazwę komendy.
Ściągawka
| Komenda / plik | Co robi | Kiedy używać |
|---|---|---|
| claude -c / -r / -n | Kontynuuje / wznawia / nazywa sesję | Powrót do pracy |
| /init, CLAUDE.md | Pamięć projektu ładowana co sesję | Komendy buildu, konwencje (<200 linii) |
| .claude/rules/*.md | Reguły z zasięgiem po globach paths: | Wskazówki specyficzne dla folderu lub języka |
| /memory | Edytuj załadowaną pamięć, przełącz automatyczną pamięć | Sprawdzanie, co Claude „wie” |
| Shift+Tab, /plan | Przełącz tryby / wejdź w plan mode | Badanie przed edycją |
| --permission-mode | default · acceptEdits · plan · auto · dontAsk · bypassPermissions | Wybór autonomii |
| /permissions | Reguły allow / ask / deny (deny → ask → allow) | Mniej pytań, twarde limity |
| /sandbox | Izolacja na poziomie OS dla Bash | Bezpieczniejsza autonomia na Twojej maszynie |
| /context, /usage | Siatka kontekstu / koszt i limity | Sesje robią się wolne albo drogie |
| /clear, /compact [focus] | Resetuje / podsumowuje kontekst | Między zadaniami / długie zadania |
| /btw | Pytanie z boku, nie dodane do historii | Szybkie sprawdzenia w trakcie zadania |
| Esc · Esc Esc · /rewind | Przerwij · cofnij kod/rozmowę | Zły kierunek, nieudany eksperyment |
| @plik, !cmd, Ctrl+V | Wzmianka pliku · uruchom shell · wklej obraz | Dostarczanie precyzyjnego kontekstu |
| .claude/skills/x/SKILL.md | Wielorazowa skilla, /x | Powtarzalne playbooki |
| .claude/agents/x.md | Niestandardowy subagent | Izolowane badania, recenzje, role |
| settings.json → hooks | Kod przy zdarzeniach cyklu życia; exit 2 blokuje | Reguły, które muszą zawsze obowiązywać, formatowanie, alerty |
| claude mcp add, /mcp, .mcp.json | Zewnętrzne narzędzia (lokalny > projekt > użytkownik) | GitHub, bazy danych, przeglądarki, trackery |
| /plugin | Instaluje paczki z marketplace'ów | Dzielenie konfiguracji między repozytoriami |
| claude -w name | Sesja we własnym worktree gita | Równoległe funkcje |
| /goal · /loop · /schedule | Aż gotowe · na interwał · rutyna w chmurze | Długa albo powtarzalna praca |
| claude -p … --output-format json | Uruchomienie headless | Skrypty, CI, rury |
| /model · /effort · /fast | Mózg · głębokość myślenia · szybszy wynik | Trudne vs rutynowe zadania |
| /code-review [ultra] | Recenzja diffa / głęboka wieloagentowa recenzja w chmurze | Przed scaleniem |
| /doctor, /release-notes | Diagnoza konfiguracji / co się zmieniło | Coś wygląda nie tak |
Przeszedłeś od „co to jest agent” przez kontekst, pamięć, uprawnienia, planowanie, prompting i cofanie, do skilli, subagentów, hooków, MCP, sesji równoległych, CI i wyboru modelu. Spójrz na listę zmartwień, którą napisałeś w rozdziale 0: złe edycje (plan mode, weryfikacja, cofanie), skasowane pliki (uprawnienia, piaskownica, hooki, git), zapominanie (CLAUDE.md, automatyczna pamięć, specyfikacje), rachunki (higiena kontekstu, wysiłek, budżety). Następny krok: wybierz jedną irytację z tego tygodnia i dodaj dokładnie jeden element konfiguracji, który ją usunie. Powtarzaj co tydzień.