Rdzeń · krok 4/5Rdzeń programu czytasz bez konta. Quizy, zapis postępu i biblioteka — dla członków.
Claude Code to agent, któremu zlecasz pracę w swoim projekcie — nie czat, który przeprowadził się do terminala. Czyta pliki, uruchamia polecenia, sprawdza wynik i poprawia się w pętli. Ty piszesz zlecenie, zatwierdzasz plan i odbierasz pracę. Ten moduł uczy obu połówek tej współpracy: jak zlecać i jak sprawdzać.
- 1Zlecenie zamiast polecenia — Claude Code zrobi dokładnie tyle, ile da się wyczytać z twojego briefu. Cel, kontekst, kryterium odbioru i granice to umiejętność, która przenosi się na każdego agenta i każdy model.
- 2Plan to najtańszy moment na korektę — zmiana kierunku przed pierwszą edycją kosztuje jedno zdanie. Po dwudziestu edycjach kosztuje sesję.
- 3Siatka bezpieczeństwa daje swobodę — tryby uprawnień, reguły deny, checkpointy i git sprawiają, że możesz delegować więcej, bo każdy krok da się zatrzymać albo cofnąć.
- 4Odbiór zostaje u ciebie — agent przynosi kandydata na rozwiązanie. Testy, diff i review zamieniają go w wynik albo w kolejną iterację.
Czat w terminalu czy agent?
To samo zdanie — „dodaj walidację emaila do formularza" — daje dwa zupełnie różne rezultaty:
codeCzat: dostajesz fragment kodu → sam szukasz pliku, wklejasz, uruchamiasz, wracasz z błędem, wklejasz znowu. Claude Code: agent znajduje formularz, sprawdza, jak walidacja wygląda gdzie indziej w projekcie, edytuje pliki, uruchamia testy, poprawia to, co nie przeszło, i raportuje, co zrobił.
Różnica nie leży w modelu, tylko w kontrakcie. Claude Code pracuje w pętli: zbiera kontekst → działa → sprawdza wynik — i powtarza, aż zadanie jest skończone. Ty możesz wejść w tę pętlę w każdej chwili (Esc przerywa bieżący krok), ale nie musisz prowadzić każdego ruchu.
Z tego wynika podział ról, który przewija się przez cały moduł: agent przejmuje wykonanie, ty zachowujesz cel i osąd. Jeśli przeszedłeś moduł „Agent ≠ czat" — tu zobaczysz tę zasadę w konkretnym narzędziu.
Gdzie działa
Claude Code to jeden silnik dostępny w kilku miejscach. Twoje pliki CLAUDE.md, ustawienia i serwery MCP działają tak samo w każdym z nich:
| Powierzchnia | Co daje |
|---|---|
| Terminal (CLI) | Pełna wersja — na niej opiera się ten moduł |
| VS Code (i jego forki) | Rozszerzenie „Claude Code": panel rozmowy, przegląd planu przed akceptacją, diffy w edytorze, wskazywanie plików z zakresem linii |
| JetBrains | IntelliJ, PyCharm, WebStorm i pokrewne |
| Aplikacja desktopowa | macOS i Windows (Linux w becie) — sesje bez terminala, wizualny przegląd zmian |
| Web: claude.ai/code | Sesje w chmurze, bez instalacji na twoim komputerze |
| Remote Control | Prowadzisz lokalną sesję z innego urządzenia |
Wybierz powierzchnię według tego, gdzie żyje twoja praca. Nawyki — zlecenie, plan, odbiór — są wszędzie te same.
Instalacja i logowanie
Jeśli przeszedłeś etap Inicjalizacja, masz to za sobą — przeskocz do następnej sekcji. Skrót:
bash# macOS, Linux, WSL — natywny instalator (zalecany) curl -fsSL https://claude.ai/install.sh | bash # Windows PowerShell irm https://claude.ai/install.ps1 | iex # Sprawdzenie (w nowym oknie terminala) claude --version # Start w folderze projektu — przy pierwszym uruchomieniu # logujesz się w przeglądarce cd moj-projekt claude
- •Natywny instalator aktualizuje się sam w tle. Instalacje przez Homebrew (
brew install --cask claude-code) i WinGet aktualizujesz ręcznie.npm install -g @anthropic-ai/claude-codenadal działa jako alternatywa (wymaga Node.js 22+), ale nie jest ścieżką zalecaną. - •Konto: płatny plan Claude (Pro, Max, Team, Enterprise) — logowanie w przeglądarce, bez klucza API. Alternatywa: konto Claude Console z rozliczeniem za API. Darmowy plan claude.ai nie obejmuje Claude Code. Zmienną
ANTHROPIC_API_KEYustawiasz tylko wtedy, gdy świadomie rozliczasz się kluczem API. - •Zmiana konta w trakcie sesji:
/login. Wersję, konto i model sprawdzisz przez/status.
Komendy instalacji zmieniają się szybciej niż ten kurs — aktualna instrukcja jest zawsze w dokumentacji (link w zasobach).
Pierwsze zlecenie: brief zamiast polecenia
Claude Code zrobi dokładnie tyle, ile da się wyczytać z twojego zlecenia. Dobry brief ma cztery części:
| Część | Pytanie | Przykład |
|---|---|---|
| Cel | Co ma powstać i po co? | „Formularz kontaktowy przepuszcza błędne adresy — ma je odrzucać przed wysłaniem do API" |
| Kontekst | Gdzie patrzeć, na czym się wzorować? | „Formularz: src/components/ContactForm.tsx. Walidację robimy już w SignupForm.tsx — trzymaj się tego wzorca" |
| Kryterium odbioru | Po czym poznasz, że skończone? | „Skończone, gdy testy dla "", "jan@" i "[email protected]" przechodzą, a npm test jest zielony. Pokaż wynik" |
| Granice | Czego nie ruszać? | „Bez nowych zależności. Nie zmieniaj kształtu API" |
code❌ Dodaj walidację do formularza. ✅ Formularz kontaktowy przepuszcza puste i błędne adresy email — chcę, żeby je odrzucał, zanim cokolwiek trafi do API. Formularz jest w @src/components/ContactForm.tsx; walidację robimy już w SignupForm.tsx — wzoruj się na nim. Skończone, gdy testy dla "", "jan@" i "[email protected]" przechodzą i npm test jest zielony. Pokaż mi wynik testów. Bez nowych zależności, nie zmieniaj API.
Dwie uwagi praktyczne:
- •Kontekst to wskazanie, nie kopiowanie. Claude Code sam czyta pliki, których potrzebuje. Twoja rola to powiedzieć, gdzie patrzeć i na czym się wzorować.
@w polu wpisywania podpowiada ścieżki plików. - •Najsilniejsze kryterium to takie, które agent sam uruchomi — test, build, linter, skrypt. Wtedy pętla zamyka się bez ciebie: agent robi, sprawdza, poprawia. A ty dostajesz dowód, nie zapewnienie.
Najpierw plan, potem wykonanie
Najtańszy moment na korektę kierunku to chwila przed pierwszą edycją. Do tego służy plan mode: agent czyta pliki i analizuje, ale niczego nie zmienia, dopóki nie zatwierdzisz planu.
Jak włączyć:
- •
Shift+Tab— przełączaj, aż pasek stanu pokażeplan mode on - •
/plan opis zadania— plan dla jednego zlecenia - •
claude --permission-mode plan— cała sesja startuje w trybie planowania
Rytm pracy przy większych zadaniach:
code1. Eksploruj (plan mode) „Przeczytaj src/auth i opisz, jak działa sesja." 2. Zaplanuj (plan mode) „Chcę dodać X. Które pliki się zmienią? Jaki plan?" 3. Wykonaj (po zatwierdzeniu planu) „Zrealizuj plan, uruchom testy." 4. Odbierz diff, testy, dowód — dopiero potem commit.
Czytając plan, sprawdzasz go wobec briefu: czy dotyka tylko plików, których się spodziewasz? Czy mówi, jak agent sprawdzi wynik? Czy nie robi czegoś „przy okazji"? Plan możesz poprawić słowem albo otworzyć do edycji (Ctrl+G).
Kiedy pominąć plan: gdy diff da się opisać jednym zdaniem — literówka, zmiana nazwy, dodanie logu. Planowanie ma sens, gdy nie znasz najlepszego podejścia, zmiana obejmuje wiele plików albo pracujesz w kodzie, którego nie znasz.
Uprawnienia i checkpointy: siatka bezpieczeństwa
Tryby uprawnień
Tryb decyduje, co agent robi bez pytania. Przełączasz je Shift+Tab (w VS Code i desktopie — wskaźnikiem trybu):
| Tryb | Bez pytania | Kiedy |
|---|---|---|
Manual (default) | tylko czyta | wrażliwa praca, nieznany kod |
acceptEdits | czyta, edytuje pliki, proste operacje na plikach | iterujesz nad kodem, który na bieżąco przeglądasz |
plan | czyta i analizuje; edycje dopiero po zatwierdzeniu planu | eksploracja przed zmianą |
auto | prawie wszystko — drugi model (klasyfikator) ocenia akcje w tle | dłuższe zadania, mniej przerw |
dontAsk | tylko wcześniej dozwolone narzędzia, resztę odrzuca | skrypty, CI |
W aktualnych wersjach sesja w terminalu i w VS Code domyślnie startuje w trybie auto. To wygodne, ale na pierwsze sesje w nieznanym projekcie rozważ claude --permission-mode manual — zobaczysz każdą akcję, zanim się wydarzy. Jest też tryb bypassPermissions, który wyłącza wszystkie pytania — wyłącznie do izolowanych kontenerów i maszyn wirtualnych.
Reguły: czego agent nie dotyka nigdy
Tryby to linia bazowa. Na nią nakładasz reguły w .claude/settings.json (albo przez /permissions). Reguły deny blokują w każdym trybie:
json{ "permissions": { "deny": ["Read(./.env)", "Read(./.env.*)"] } }
To właściwy mechanizm wyłączania plików z zasięgu agenta. Claude Code nie ma pliku .claudeignore, a wpis w CLAUDE.md to kontekst, nie egzekwowana blokada.
Checkpointy: bezpieczne cofanie
Każde twoje polecenie tworzy automatyczny checkpoint. /rewind (albo dwa razy Esc przy pustym polu) otwiera menu: przywróć kod, rozmowę albo jedno i drugie do wybranego momentu.
Granice tej siatki:
- •śledzone są edycje robione narzędziami edycji Claude — zmiany przez polecenia powłoki (
rm,mv,cp) nie są, - •zmiany zrobione ręcznie poza sesją albo w innej sesji zwykle też nie,
- •checkpoint to cofanie w obrębie sesji, nie zastępuje gita. Przed większym zleceniem zrób commit.
CLAUDE.md: stała umowa
CLAUDE.md to plik, który Claude Code wczytuje na starcie każdej sesji. Zapisujesz w nim to, co inaczej tłumaczyłbyś za każdym razem: jak uruchomić testy, jakie są konwencje, czego nie ruszać.
| Gdzie | Dla kogo |
|---|---|
~/.claude/CLAUDE.md | ty, we wszystkich projektach |
./CLAUDE.md lub ./.claude/CLAUDE.md | cały zespół — trafia do repozytorium |
./CLAUDE.local.md | ty, tylko w tym projekcie (dodaj do .gitignore) |
CLAUDE.md w podfolderze | wczytywany, gdy agent pracuje na plikach w tym folderze |
Pliki się sumują, nie nadpisują — instrukcje bliżej folderu, w którym pracujesz, agent czyta później. Sprzeczne zasady w dwóch plikach to proszenie się o losowy wybór.
Jak zacząć: /init analizuje projekt i generuje startowy CLAUDE.md (jeśli plik istnieje — proponuje poprawki). Potem dopisujesz to, czego agent sam nie wyczyta z kodu. /memory otwiera pliki CLAUDE.md do edycji i pokazuje notatki, które Claude zapisuje sam (auto memory).
markdown# CLAUDE.md ## Komendy - npm run dev — serwer deweloperski - npm test — testy (uruchom przed każdym commitem) ## Konwencje - Komponenty w src/components/, nazwy w PascalCase - Walidacja formularzy: wzorzec z SignupForm.tsx ## Granice - Nie dodawaj zależności bez pytania - Nie modyfikuj plików w src/generated/
Trzy zasady dobrego CLAUDE.md:
- •Sprawdzalne zamiast ogólnych: „Uruchom
npm testprzed commitem", nie „testuj zmiany". - •Krótko: celuj w mniej niż ~200 linii. Długi plik zjada kontekst i obniża posłuszeństwo.
- •Dopisuj, gdy agent drugi raz popełni ten sam błąd — albo gdy łapiesz się na wpisywaniu tej samej poprawki co sesję.
Więcej o hierarchii, regułach per ścieżka i pamięci — w module „Pliki Kontekstowe".
Rozszerzenia: kiedy po co sięgnąć
Nie konfiguruj wszystkiego na start. Każde rozszerzenie ma rozpoznawalny sygnał:
| Sygnał | Sięgnij po |
|---|---|
| Agent drugi raz myli konwencję albo komendę | CLAUDE.md — wpis na stałe |
| Trzeci raz wklejasz tę samą procedurę czy checklistę | Skill — .claude/skills/<nazwa>/SKILL.md, wywołanie /nazwa |
| Zadanie poboczne zasypuje rozmowę wynikami, których nie potrzebujesz | Subagent — pracuje we własnym kontekście, wraca samo podsumowanie |
| Coś ma się dziać zawsze, bez proszenia (np. linter po każdej edycji) | Hook — skrypt uruchamiany przy zdarzeniu (/hooks) |
| Przepisujesz dane z systemu, którego agent nie widzi | Serwer MCP — claude mcp add, zarządzanie przez /mcp |
| Drugie repozytorium potrzebuje tego samego zestawu | Plugin — paczka skilli, hooków, subagentów i MCP (/plugin) |
Pracę wielu agentów naraz omawia moduł „Multi-Agent" w rdzeniu programu. Skills i serwery MCP rozwijamy szerzej w etapie NARZĘDZIA, w bibliotece dla członków. Tutaj wystarczy, że wiesz, kiedy sygnał się pojawia.
Weryfikacja: praca agenta to kandydat, nie wynik
Agent kończy, gdy praca wygląda na skończoną. Bez sprawdzalnego kryterium „wygląda" jest jedynym sygnałem — a agent przynosi słaby i świetny wynik tym samym pewnym tonem.
Jak odbierać pracę:
- •Dowód zamiast deklaracji. Poproś o komendę, którą agent uruchomił, i jej wynik — nie o zdanie „gotowe, działa".
- •Czytaj diff, nie opowieść.
/diffpokazuje zmiany w drzewie roboczym razem z edycjami agenta; w VS Code masz diffy w edytorze. Opis pracy i praca to dwie różne rzeczy — rozjazd między nimi to najczęstszy sygnał problemu. - •Druga para oczu.
/code-review(alias/review) przegląda bieżące zmiany,/security-reviewszuka podatności w zmianach na gałęzi. Agent, który wykonał pracę, nie powinien być jedynym, który ją ocenia — przy ważnych zmianach ten drugi to ty albo ktoś z zespołu. Pamiętaj: kod, który działa, to nie kod, który jest bezpieczny. Agent optymalizuje to, co widzi — czy się uruchamia, czy testy przechodzą — a bezpieczeństwo to myślenie o tym, czego nie widać: kto jeszcze wywoła tę funkcję, co przyjdzie w danych, gdzie wyciekną sekrety. „Zaakceptuj wszystko" to najdroższy przycisk w pracy z agentem. - •Zapytaj, gdzie improwizował: „Co było najtrudniejszą decyzją i co byś sprawdził na moim miejscu?"
- •Commit po odbiorze. Claude Code nie ma wbudowanej komendy
/commit— prosisz zwyczajnie („zrób commit z opisowym komunikatem") albo commitujesz sam. Kolejność ma znaczenie: najpierw odbiór, potem zapis.
Z życia: Production bug w piątek o 17:00
Kasia, backend dev, piątek 17:00. Alert z monitoringu: część requestów do /api/checkout zwraca 500. Dziś nie było żadnego deploya. Klientom nie przechodzą płatności.
Jak poprowadziła Claude Code:
Krok 1: Diagnoza, nie „napraw"
code> /plan Od 15 minut /api/checkout zwraca 500. Dziś nie było deploya. Przejrzyj logi z ostatnich 30 minut i opisz, co widzisz. Niczego nie zmieniaj. Claude: [czyta logi] "500-tki dotyczą tylko płatności kartą — przelewy przechodzą. SDK operatora płatności zwraca 401 Unauthorized."
Krok 2: Hipotezy
code> Zaproponuj 3 hipotezy, dlaczego autoryzacja przestała działać bez naszych zmian. Którą najtaniej sprawdzić? Claude: 1. Klucz API został zrotowany, a aplikacja trzyma stary 2. Operator zmienił wymagania wobec nagłówków żądania 3. Nasz middleware gubi nagłówek autoryzacji Najtaniej: 1 — wystarczy sprawdzić, skąd i kiedy czytamy klucz.
Krok 3: Test hipotezy
code> Sprawdź hipotezę 1. Nie wypisuj wartości klucza. Claude: [czyta konfigurację i skrypt rotacji] "Skrypt rotacji kluczy uruchamiany przez cron zadziałał dziś o 16:40. Aplikacja wczytuje klucz raz, przy starcie, i trzyma go w pamięci — po rotacji używa nieważnego."
Krok 4: Poprawka z dowodem
code> Najpierw test, który odtwarza błąd po rotacji klucza. Potem poprawka. Pokaż wynik testów i diff — wdrażam ja. Claude: [pisze test → test nie przechodzi → poprawka → test przechodzi] "Klient płatności czyta teraz klucz ze źródła przy każdej inicjalizacji i odświeża go po 401. Diff poniżej: 2 pliki."
Kasia przeczytała diff, jako doraźny ratunek zrestartowała aplikację, a poprawkę wdrożyła sama, po przejściu testów.
Cenna wiedza: Kasia nie powiedziała „napraw buga". Prowadziła agenta jak diagnozę: objawy → hipotezy → test → poprawka → dowód. Agent wykonał całą żmudną część — czytanie logów, konfiguracji, skryptów. Dwie decyzje zostały u niej: co jest przyczyną i co trafia na produkcję. To jest różnica między delegowaniem a oddawaniem steru.
Kiedy NIE delegować
- •Nie umiesz napisać kryterium odbioru. Najpierw pomyśl albo porozmawiaj (plan mode nadaje się do tego świetnie), dopiero potem zlecaj.
- •Sprawdzenie kosztuje tyle, co zrobienie. Zmiana w jednej linii, którą znasz na pamięć, szybciej wyjdzie spod twoich palców.
- •To decyzja, nie wykonanie. Architektura, priorytety, kompromisy biznesowe, „czy to idzie na produkcję". Agent przygotuje opcje i ich koszty — wybór należy do ciebie.
- •Nie masz siatki. Brak gita, brak testów, dostęp do produkcji i sekretów — najpierw commit, reguły
deny, testy. Potem delegacja. - •Celem jest twoje zrozumienie. Gdy uczysz się czegoś od podstaw, niech agent tłumaczy i zadaje pytania — a piszesz ty.
- •„Przepisz cały projekt". Zadanie bez granic kończy się pracą, której nie da się odebrać. Dziel na kroki, z których każdy ma własne kryterium.