Rok temu pisałem kod sam. Dziś mam partnera, który widzi każdy commit, wyłapuje bugi zanim trafią na produkcję i pisze testy szybciej niż ja. Nie jest człowiekiem.
Od kilku miesięcy używam Claude Code - terminalowego narzędzia Anthropic - jako stałego elementu mojego workflow. Nie jako ciekawostkę, nie jako eksperyment. Jako narzędzie, bez którego nie chcę już pracować.
Ten artykuł to nie recenzja z dwudniowego testu. To opis tego, jak wygląda moja codzienna praca z AI po miesiącach użytkowania. Co działa, co nie, ile kosztuje i dlaczego wybrałem właśnie to narzędzie.
Czym jest Claude Code
Claude Code to narzędzie CLI od Anthropic. Uruchamiasz je w terminalu, dajesz mu dostęp do plików projektowych, a ono czyta, analizuje i edytuje kod bezpośrednio w Twoim repozytorium.
To nie jest autocomplete w edytorze jak Copilot. To nie jest chatbot w przeglądarce. Claude Code działa w terminalu, ma dostęp do całego projektu i może wykonywać polecenia - uruchamiać testy, czytać logi, commitować zmiany.
Najważniejsza cecha: plik CLAUDE.md w katalogu projektu. To instrukcja, którą Claude czyta przy każdym uruchomieniu. Definiujesz tam stack technologiczny, konwencje kodu, polecenia do testów, strukturę projektu. Claude wchodzi w sesję z pełnym kontekstem - nie musisz za każdym razem tłumaczyć czym jest Twój projekt.
Mój CLAUDE.md ma ~200 linii. Są tam komendy do uruchamiania testów, struktura folderów, konwencje nazewnictwa, a nawet instrukcje jak robić code review. Claude traktuje te instrukcje poważnie - stosuje się do nich w każdej sesji.
Od stycznia 2026 Claude Code działa na modelu Opus 4.6, z oknem kontekstu 1M tokenów w becie. W praktyce oznacza to, że może przeczytać i zrozumieć całe duże repozytorium, nie tylko pojedynczy plik.
Cennik (luty 2026)
Claude Code jest dostępny w ramach subskrypcji Claude:
- Pro ($20/mies.) - dostęp do Claude Code z podstawowym limitem
- Max 5x ($100/mies.) - 5-krotnie większy limit, priorytetowy dostęp
- Max 20x ($200/mies.) - 20-krotnie większy limit, zero kolejek
Używam planu Max. Przy 8 godzinach dziennej pracy z kodem, podstawowy plan Pro nie starcza. Max 5x za $100 miesięcznie wystarcza na większość dni roboczych. Przy intensywnych sesjach z subagentami - więcej o nich później - zdarzają się dni, kiedy i ten limit jest ciasny.
Alternatywnie można podłączyć własny klucz API i płacić za tokeny. Opus 4.6 kosztuje $5 za milion tokenów na wejściu i $25 na wyjściu.
Claude Code vs GitHub Copilot vs Cursor
Każde z tych narzędzi rozwiązuje inny problem.
GitHub Copilot ($10-19/mies.) to autocomplete na sterydach. Piszesz kod, Copilot dopowiada. Działa w edytorze, jest szybki, nie wymaga przełączania kontekstu. Dobry do szybkiego pisania standardowego kodu - endpointy CRUD, testy, boilerplate.
Cursor ($20-200/mies.) to edytor z AI wbudowanym głęboko w interfejs. Rozumie kontekst całego projektu, sugeruje zmiany w wielu plikach jednocześnie. Najlepsza opcja, jeśli chcesz zintegrować AI bezpośrednio z edytorem.
Claude Code ($20-200/mies.) to autonomiczny agent w terminalu. Nie podpowiada - wykonuje. Dajesz mu zadanie, a on czyta pliki, pisze kod, uruchamia testy, poprawia błędy. Może pracować samodzielnie przez dłuższy czas.
Dlaczego wybrałem Claude Code
Trzy powody.
Po pierwsze, agent a nie autocomplete. Copilot podpowiada następną linijkę. Claude Code implementuje całą funkcjonalność - od schematu bazy danych, przez logikę biznesową, po testy. Mogę opisać feature w dwóch zdaniach i dostać działający kod.
Po drugie, terminal. Nie potrzebuję konkretnego edytora. Pracuję w PhpStorm, ale Claude Code działa obok, w osobnym terminalu. Mogę mieć otwarte kilka sesji jednocześnie - jedna robi code review, druga implementuje feature, trzecia pisze testy.
Po trzecie, system skilli i subagentów. Claude Code ma możliwość uruchamiania równoległych podagentów i korzystania z gotowych workflowów (o tym w osobnej sekcji). Copilot i Cursor tego nie oferują na tym poziomie.
W praktyce wielu developerów używa więcej niż jednego narzędzia. Copilot w edytorze do szybkich uzupełnień, Claude Code w terminalu do większych zadań. To nie jest wybór "albo-albo".
Jak wygląda mój dzień pracy
Rano: otwieram terminal
Uruchamiam Claude Code w katalogu projektu. Claude czyta CLAUDE.md, zna strukturę, wie jakie testy uruchomić, zna konwencje kodu. Nie mam fazy "wprowadzania w kontekst" - wszystko jest w pliku.
$ cd ~/projekty/api-klienta
$ claude
Claude od razu wie, że to projekt Laravel, że testy uruchamiam przez php artisan test, że migracje są w database/migrations, że API używa wersjonowania w URL. Te informacje są w CLAUDE.md i Claude stosuje je automatycznie.
Code review: "przejrzyj tego PR-a"
Przed mergem każdego PR-a proszę Claude o review. Nie piszę "sprawdź kod" - mam w CLAUDE.md zdefiniowany format review z poziomami severity.
Zrób review ostatnich zmian w branchu feature/payment-retry.
Sprawdź security, performance, error handling.
Claude czyta diff, analizuje zmiany w kontekście całego projektu (nie tylko zmienione pliki) i zwraca review w ustrukturyzowanym formacie:
[CRITICAL] app/Services/PaymentService.php:47
Problem: Brak limitu retry - przy trwałym błędzie bramki płatniczej
pętla wykona się w nieskończoność.
Fix: Dodaj max_retries z configu i circuit breaker.
[MAJOR] app/Http/Controllers/PaymentController.php:23
Problem: Brak walidacji kwoty - można przekazać wartość ujemną.
Fix: Dodaj regułę 'min:0.01' do PaymentRequest.
[MINOR] app/Models/Payment.php:15
Problem: Brak indeksu na kolumnie status użytej w scope.
Fix: Dodaj indeks w migracji.
Trzy tygodnie temu Claude złapał brak limitu na retry w serwisie płatności. Napisałem logikę ponownych prób przy błędzie bramki, ale nie dodałem warunku zatrzymania. Na code review ręcznym bym to prawdopodobnie przegapił - bo patrzyłem na to, czy logika retry działa, a nie na to, co się stanie gdy nigdy nie zadziała.
Implementacja: od opisu do kodu
Typowy workflow implementacji:
Dodaj endpoint POST /api/v2/invoices/{id}/send-reminder.
Logika:
- Sprawdź czy faktura istnieje i jest nieopłacona
- Sprawdź czy minęło 7 dni od ostatniego przypomnienia
- Wyślij maila z przypomnieniem (użyj InvoiceReminderMail)
- Zapisz datę wysłania w tabeli invoice_reminders
- Zwróć 200 z datą następnego możliwego przypomnienia
Napisz też testy.
Claude generuje: migrację, model, kontroler, form request, mail, testy. Zna konwencje projektu z CLAUDE.md - wie gdzie umieszczać pliki, jak nazywać klasy, jakiej struktury odpowiedzi używać.
Nie biorę tego za gotowe. Czytam każdy wygenerowany plik, sprawdzam logikę, uruchamiam testy. Ale 80% kodu jest poprawne od razu. Poprawki to zwykle detale - nazewnictwo zmiennej, kolejność walidacji, drobne edge case'y.
Debugowanie: systematyczne szukanie przyczyny
Claude Code ma skill do systematycznego debugowania. Zamiast rzucać losowymi poprawkami, przechodzi przez kroki:
- Reproduce - odtwórz błąd
- Isolate - znajdź dokładne miejsce w kodzie
- Hypothesize - postaw hipotezę
- Fix - napraw
- Verify - upewnij się że fix działa i nic nie zepsuł
Błąd: POST /api/v2/orders zwraca 500 przy zamówieniach
z więcej niż 20 pozycjami. Przy 1-19 działa.
Logi: "Maximum execution time of 30 seconds exceeded"
Claude przeczyta kontroler, serwis, relacje Eloquent, zidentyfikuje problem N+1 queries przy ładowaniu produktów dla każdej pozycji, zaproponuje eager loading i zweryfikuje rozwiązanie uruchamiając testy.
Architektura: konsultacje przy decyzjach
Przed implementacją większych featureów konsultuję się z Claude jak z senior developerem.
Potrzebuję systemu uprawnień w API. Wymagania:
- Role: admin, manager, employee
- Każda rola ma zestaw permissions
- Manager może nadawać uprawnienia employee
- Permissions sprawdzane na poziomie endpointu
Dwie opcje: Spatie Permission package albo własna implementacja.
Porównaj obie opcje pod kątem: elastyczność, performance,
maintenance, nakład pracy.
Claude analizuje obie opcje, podaje konkretne argumenty za i przeciw, rekomenduje rozwiązanie. Nie daje odpowiedzi "to zależy" - daje konkretną rekomendację z uzasadnieniem. Jeśli się z nią nie zgadzam, dyskutujemy. Czasem zmienia zdanie, czasem przekonuje mnie.
Code review: jak to ustawić skutecznie
Sam prompt "sprawdź ten kod" da słabe wyniki. Żeby AI review był użyteczny, potrzebujesz trzech rzeczy.
1. Kontekst projektu w CLAUDE.md
## Code review
Przy review sprawdź zawsze:
- Security: SQL injection, XSS, brak auth, mass assignment
- Performance: N+1, brak indeksów, niepotrzebne zapytania
- Laravel: użyj Form Request (nie waliduj w kontrolerze),
użyj Policy (nie sprawdzaj uprawnień ręcznie)
- Testy: każdy nowy endpoint musi mieć test
Format:
[CRITICAL/MAJOR/MINOR/SUGGESTION] plik:linia
Problem: opis
Fix: konkretna poprawka
2. Kontekst zmian (nie całego repo)
Zrób review PR feature/user-export.
Zmiany dotyczą eksportu użytkowników do CSV.
Zwróć uwagę na wydajność - tabela users ma 500k rekordów.
Dodanie kontekstu "500k rekordów" zmienia całość review. Bez tego Claude może nie zwrócić uwagi na to, że User::all() zabije serwer.
3. Iteracja
Pierwsze review daje 70-80% wartości. Po nim pytam:
Dobrze. Teraz sprawdź jeszcze:
- Czy są race conditions przy równoczesnym eksporcie?
- Czy plik tymczasowy jest usuwany po wysłaniu?
- Co się stanie jak eksport trwa dłużej niż timeout?
Drugie przejście wyłapuje rzeczy, które pierwsze pominęło. Tak samo jak przy ludzkim code review - dwa przejścia są lepsze niż jedno.
System skilli (Superpowers)
Claude Code ma system skilli - gotowych workflowów, które automatyzują powtarzalne procesy. Używam Superpowers, frameworka stworzonego przez Borisa Chernego (twórcę Claude Code w Anthropic), który integruje ponad 20 skilli.
Trzy skille, które używam najczęściej:
writing-plans
Przed implementacją większego feature'u uruchamiam skill planowania. Daję mu PRD lub opis wymagania, a on rozbija to na konkretne taski z checkpointami.
/writing-plans
Wejście: PRD systemu notyfikacji (push, email, in-app)
Dostaję szczegółowy plan: 30-50 tasków, każdy z jasnym scope'm, zależności między taskami, kryteria akceptacji. Plan jest na tyle granularny, że mogę go wykonywać task po tasku, a każdy task daje działający, testowalny fragment kodu.
test-driven-development
Ten skill wymusza TDD. Dosłownie - jeśli Claude próbuje napisać kod przed testami, skill każe mu skasować kod i zacząć od testów. Bez wyjątków.
Dodaj walidację IBAN w PaymentService.
Claude najpierw pisze testy:
public function test_validates_correct_polish_iban(): void
{
$service = new PaymentService();
$this->assertTrue(
$service->validateIban('PL61109010140000071219812874')
);
}
public function test_rejects_iban_with_wrong_checksum(): void
{
$service = new PaymentService();
$this->assertFalse(
$service->validateIban('PL61109010140000071219812875')
);
}
public function test_rejects_iban_with_invalid_country_code(): void
{
$service = new PaymentService();
$this->assertFalse(
$service->validateIban('XX61109010140000071219812874')
);
}
Dopiero potem implementację. Testy są czerwone, Claude pisze kod aż będą zielone. Przy każdej zmianie uruchamia php artisan test i weryfikuje wynik.
systematic-debugging
Opisany wyżej workflow: reproduce, isolate, hypothesize, fix, verify. Skill wymusza przejście przez każdy krok - Claude nie może "zgadywać" poprawki bez reprodukcji błędu.
Tworzenie własnych skilli
Skille to foldery z plikami markdown opisującymi workflow. Mogę stworzyć własny:
.claude/skills/
laravel-migration/
skill.md - instrukcje: jak pisać migracje w tym projekcie
api-endpoint/
skill.md - checklist: walidacja, auth, rate limiting, testy
Claude automatycznie wykrywa i ładuje skille gdy są adekwatne do zadania. Jeśli proszę o migrację, użyje laravel-migration. Jeśli o nowy endpoint, użyje api-endpoint.
Subagenci i Agent Teams
Subagenci: równoległa praca
Claude Code może uruchomić do 7 równoległych subagentów. Każdy działa w osobnym kontekście, ma własny zestaw narzędzi i zwraca wyniki do głównego agenta.
Przykład z mojej pracy: miałem do przeanalizowania 4 różne podejścia do implementacji systemu cache'owania. Zamiast analizować je po kolei:
Przeanalizuj 4 opcje cache'owania dla tego projektu.
Użyj 4 równoległych subagentów, każdy analizuje jedną opcję:
1. Redis z TTL per endpoint
2. Varnish przed Nginx
3. Laravel Cache z tagami
4. CDN dla statycznych odpowiedzi API
Każdy subagent: sprawdź performance, złożoność implementacji,
koszty infrastruktury, wady.
4 subagenty analizują równocześnie. Po 2-3 minutach mam porównanie zamiast 15 minut sekwencyjnej analizy.
Inny przykład: research. Przy projekcie PineScript uruchomiłem 4 subagentów do równoległego researchu - każdy analizował inny aspekt strategii tradingowej. Wyniki wróciły jednocześnie, a główny agent je zsyntezował.
Agent Teams: zespoły agentów
Agent Teams to nowa funkcja (eksperymentalna w lutym 2026). Różnica w stosunku do subagentów: agenci w zespole mogą komunikować się między sobą, nie tylko z głównym agentem.
Przydaje się przy zadaniach, gdzie zmiany w jednej warstwie wpływają na inną. Przykład: zmiana w schemacie bazy wymaga zmian w API, które wymagają zmian w testach. Trzy agenty - jeden na migracje, jeden na kontrolery, jeden na testy - koordynują się między sobą.
W praktyce używam Agent Teams rzadziej niż subagentów. Subagenty wystarczają na 90% zadań. Teams są przydatne przy dużych refactoringach, gdzie wiele warstw zmienia się jednocześnie.
Jedno zastrzeżenie: każdy agent w zespole to osobna instancja Claude z własnym oknem kontekstu. Zespół 5 agentów zużywa ~5x więcej tokenów niż pojedyncza sesja. Trzeba to mieć na uwadze przy limicie na planie Max.
Co się zmieniło w jakości mojego kodu
Przed AI
Testy? "Napiszę później." Później nigdy nie nadchodziło. Code review? Szybkie przejrzenie diffa, szukanie oczywistych błędów. Refactoring? "Jak będzie czas." Czas nigdy nie był.
Nie dlatego, że nie chciałem. Dlatego, że każda z tych rzeczy kosztowała czas, którego nie miałem. Pisanie testów do istniejącego endpointu to 30-60 minut. Porządny code review to 20-30 minut. Refactoring - godziny.
Po AI
Testy pisze się razem z kodem, bo Claude generuje je automatycznie w ramach implementacji. Skill TDD wymusza to na poziomie procesu - kod bez testów nie przechodzi.
Code review jest na każdym commicie. Nie kosztuje mnie 30 minut - kosztuje 2 minuty na napisanie prompta i 5 minut na przeczytanie review. Claude sprawdza security, performance, edge case'y - rzeczy, które przy ręcznym review regularnie przegapiałem.
Refactoring dzieje się w trakcie implementacji. Claude widzi, że metoda ma 80 linii, i sugeruje wydzielenie logiki do serwisu. Nie czekam na "kiedyś" - poprawiam od razu.
Konkretne liczby z mojego doświadczenia:
- Pokrycie testami wzrosło z ~30% do ~75%
- Czas na code review spadł z 30 minut do 7 minut (prompt + czytanie)
- Bugi na produkcji: trudno mierzyć precyzyjnie, ale subiektywnie mniej
Ograniczenia - co Claude Code robi słabo
Nie zamierzam udawać, że AI rozwiązuje wszystko. Są konkretne sytuacje, w których Claude Code zawodzi.
Legacy code bez kontekstu. Jeśli projekt ma 10 lat historii, dziwne konwencje i zero dokumentacji, Claude będzie zgadywał. Może przeczytać kod, ale nie rozumie dlaczego ktoś napisał coś w dziwny sposób. Kontekst biznesowy, który siedzi w głowach ludzi, nie jest w plikach.
Złożone integracje z wieloma edge case'ami. Integracja z API bramki płatniczej, która ma 40 różnych kodów błędów, każdy wymagający innej obsługi - Claude napisze szkielet, ale detale (co dokładnie robić przy kodzie 3042 vs 3043) musisz dodać sam na podstawie dokumentacji i doświadczenia.
Spójność przy długich sesjach. Przy bardzo długich sesjach (1000+ wiadomości) Claude może "zapomnieć" ustalenia z początku rozmowy. Kompaktowanie kontekstu pomaga, ale nie eliminuje problemu całkowicie. Rozwiązanie: krótsze sesje, jasne checkpointy, kompaktowanie przy dużych kontekstach.
Halucynacje w API i bibliotekach. Claude czasem "wymyśla" metody, które nie istnieją w danej wersji biblioteki. Przy Laravel zdarza się to rzadko (dużo danych treningowych), ale przy mniej popularnych paczkach - częściej. Zawsze weryfikuję wygenerowany kod.
Koszt vs wartość
Plan Max 5x kosztuje $100 miesięcznie. Liczmy.
Jeśli Claude oszczędza mi 1.5 godziny dziennie (konserwatywny szacunek - testy, review, debugging, boilerplate), to w miesiącu (20 dni roboczych) jest to 30 godzin. Przy stawce $50-80/h za pracę backend developera, te 30 godzin to $1500-2400 wartości.
Nawet jeśli obniżymy szacunek do 1 godziny dziennie - $1000-1600 miesięcznie za $100.
Ale wartość nie jest tylko w zaoszczędzonym czasie. Jest w:
- Testach, które wcześniej bym pominął
- Bugach złapanych na code review zamiast na produkcji
- Lepszej architekturze, bo mam "senior developera" do konsultacji
- Szybszym onboardingu do nowych projektów (Claude czyta i streszcza bazę kodu)
Czy to się opłaca? Dla mnie - jednoznacznie tak. Ale to zależy od intensywności pracy z kodem. Jeśli piszesz kod 1-2 godziny dziennie, plan Pro za $20 może wystarczyć.
Jak zacząć - praktyczne kroki
1. Zainstaluj Claude Code
npm install -g @anthropic-ai/claude-code
Potrzebujesz konta Anthropic z planem Pro lub wyższym. Albo klucza API.
2. Stwórz CLAUDE.md w projekcie
Zacznij od podstaw:
# Projekt: [nazwa]
## Stack
- PHP 8.3, Laravel 11
- PostgreSQL, Redis
- PHPUnit do testów
## Komendy
- Testy: `php artisan test`
- Linting: `./vendor/bin/pint`
- Migracje: `php artisan migrate`
## Konwencje
- Walidacja w Form Request, nie w kontrolerze
- Logika biznesowa w serwisach, nie w kontrolerach
- Nazewnictwo: camelCase metody, snake_case kolumny DB
Rozbudowuj ten plik z czasem. Każda sytuacja, w której musisz poprawiać Claude, to potencjalny wpis do CLAUDE.md.
3. Zacznij od code review
Nie próbuj od razu delegować całej implementacji. Zacznij od review istniejącego kodu:
Przejrzyj plik app/Services/OrderService.php.
Zwróć uwagę na: security, performance, error handling.
Zobaczysz jakość feedbacku i nauczysz się formułować prompty.
4. Stopniowo dodawaj złożoność
- Tydzień 1-2: code review, proste pytania o architekturę
- Tydzień 3-4: implementacja mniejszych featureów z testami
- Tydzień 5+: subagenci, skille, większa implementacja
5. Zainstaluj Superpowers (opcjonalnie)
Jeśli chcesz gotowe workflowy:
claude skill install superpowers
Daje od razu TDD, planowanie, debugging i code review jako gotowe skille.
Jedno zdanie na koniec
Claude Code nie pisze za mnie kodu. Pisze ze mną kod - szybciej, z testami, z review na każdym commicie. Po kilku miesiącach nie wyobrażam sobie powrotu do pracy bez tego narzędzia.
Jeśli chcesz wdrożyć AI w swoim zespole developerskim lub przeszkolić ludzi z narzędzi takich jak Claude Code - zajrzyj na stronę konsultacje i szkolenia AI.