Największa aktualizacja Claude Code w historii — function hooks (Anthropic Just Dropped the Biggest Claude Code Update Yet)

2026-09-04 Ray Amjad AI zagraniczne tutorial waga 4/5 17 min czytania

Anthropic wprowadza function hooks w Claude Code — warstwy pośrednie przechwytujące wywołania narzędzi, maskujące sekrety, rozszerzające UI. Konkretne przepisy dla programistów, którzy chcą twardej kontroli nad agentem.

Robocza publikacja redakcyjna na podstawie publicznego transkryptu YouTube. Źródło: YouTube.

O czym jest ten film

  1. Anthropic wydało function hooks — mechanizm, który autor po kilku godzinach testów nazywa najlepszą funkcją Claude Code.
  2. Nowe hooki działają jak warstwy pośrednie (middleware) znane z Express.js: przechwytują każde wywołanie narzędzia i mogą je zablokować, zmodyfikować albo obsłużyć samodzielnie.
  3. Łatają braki starych hooków: pozwalają przepisywać wejście, doklejać kontekst z firmowej bazy wiedzy, rysować elementy interfejsu, zadawać pytania użytkownikowi i pamiętać między sesjami.
  4. Podstawowe triki: podmiana npm na pnpm w komendach, cache wyników web fetch we wbudowanym magazynie, nadpisanie wbudowanej wyszukiwarki przez API Exa.
  5. Flagowe demo: hook wykrywa sekrety po entropii tekstu — klucz API nigdy nie trafia do transkryptu sesji, a agent mimo to posługuje się nim przy wysyłce żądań.
  6. Nowe elementy interfejsu: dynamiczny wiersz z etapem wdrożenia Vercel i czasem budowania, przyciski chowania, panele z danymi na żywo.
  7. Hooki potrafią wołać modele (Haiku przez komendę $model) i mówić do użytkownika głosem systemowego syntezatora mowy.
  8. Wzorce dla zespołów: tryb dry run, pytanie o podział plików powyżej 1000 linii, audyt każdego zdarzenia do firmowego magazynu logów.
  9. Reguły z CLAUDE.md warto przenosić do deterministycznego hooks.json i udostępniać zespołowi jako pluginy przez repozytorium na GitHubie.
  10. Materiał zawiera też autopromocję: autor kończy sprzedaż oferty lifetime swojej szkoły i przechodzi na droższy model kohortowy (pierwsza kohorta: przełom września i października).

Redakcyjne tłumaczenie

Najlepsza funkcja Claude Code według autora

Anthropic wydało dziś funkcję, którą — po zaledwie kilku godzinach zabawy — uznaję za najlepszą w całym Claude Code: function hooks, czyli „hooki funkcyjne”. Do tej pory największym moim faworytem były dynamiczne workflow, ale to, co potrafią nowe hooki, gra w zupełnie innej lidze. Od razu wiedziałem, że trzeba o tym nagrać. Poniżej przechodzę przez całą funkcję i pokazuję, jak może ona uczynić nas lepszymi inżynierami.

(Informacja dodatkowa: Claude Code to terminalowe narzędzie Anthropic do programowania z pomocą agenta AI; hook to funkcja lub skrypt uruchamiany automatycznie przy określonych zdarzeniach, np. przed wykonaniem komendy w powłoce.)

Jeśli nie znasz zwykłych hooków w Claude Code, na moim blogu jest darmowy materiał wprowadzający (link w opisie filmu). W skrócie: zwykłe hooki służą do tego, by dodać Claude Code sztywną, przewidywalną kontrolę, a function hooks wynoszą ten mechanizm na wyższy poziom — narzędzie staje się znacznie bardziej otwarte na modyfikacje i dopasowanie pod siebie. Przy okazji łatają kilka bolączek, które dotąd trapiły stary mechanizm. Na marginesie: właśnie trwa wyprzedaż mojej Agentic Coding School, wrócę do niej w połowie materiału.

Po co komu hooki: kontrola, która działa zawsze

Minuta podstaw, żebyśmy grali w jednej drużynie — kto zna temat, niech przewinie dwie minuty dalej.

Hooki dodają do Claude Code kontrolę deterministyczną: reguły, które działają zawsze, a nie tylko wtedy, gdy model akurat o nich pamięta. Skąd taka potrzeba? Oto typowe awarie:

  • W pliku CLAUDE.md zapisujesz regułę w rodzaju „nigdy nie uruchamiaj destrukcyjnych komend Supabase”. Tyle że gdy kontekst się zapełnia, reguły z początku pliku oraz promptu systemowego powoli blakną — i Claude po prostu o nich zapomina.
  • Wysyłasz byle jaki, niedopracowany prompt; Claude źle go interpretuje i pociąga za niebezpieczną dźwignię.
  • Definiujesz proces, a Claude i tak zbacza z wytyczonej ścieżki.

Każdy z tych scenariuszy naprawia hook. Przykład z życia: proszę Claude „zrób mi hooka, który przy pracy z CLI Supabase blokuje niebezpieczne komendy”. Powstaje mechanizm taki jak ten: przed każdym wywołaniem narzędzia Bash uruchamiany jest skrypt powłoki supabase-guard, który wyłapuje zakazane operacje — na czarnej liście są m.in. usuwanie projektów i gałęzi.

Gdzie kończy się stary mechanizm

Dotychczasowe hooki miały jednak sporo ograniczeń. Nie potrafiły:

  • przepisać niczego na wejściu, choćby promptu, który właśnie wpisujesz;
  • dokleić do sesji dodatkowego kontekstu, na przykład z firmowej bazy wiedzy;
  • narysować w Claude Code żadnych elementów interfejsu: przycisków, wierszy statusu;
  • zadać użytkownikowi pytania;
  • dodać nowego narzędzia ani zmienić opisów istniejących;
  • zapamiętać niczego między poszczególnymi hookami i sesjami.

Function hooks zamykają wszystkie te braki naraz.

To samo, co middleware w Express.js — tylko w terminalu

Najlepsza analogia, jaka przychodzi mi do głowy, to warstwy pośrednie (middleware) w Express.js, popularnym frameworku Node.js. Jeśli z nich korzystałeś, poczujesz się jak w domu: tam taka warstwa sprawdza na przykład nagłówek autoryzacji — brak nagłówka to koniec rozmowy, a jego obecność przepuszcza żądanie dalej, do next().

Function hooks wyglądają niemal identycznie. Każde wywołanie narzędzia w Claude Code można dopasować do wzorca: jeśli to narzędzie Bash, a komenda pasuje do wyrażenia regularnego — powiedzmy do usuwania katalogu — blokujemy ją; w przeciwnym razie przepuszczamy dalej.

Ta sama konstrukcja pozwala na naprawdę sprytne rzeczy:

  • Przepisywanie wejścia. Każde wywołanie Bash przechodzi przez filtr, który w komendzie zamienia npm na pnpm install — koniec z przypadkowym npm w projektach prowadzonych na pnpm.
  • Skrócenie drogi z pamięcią podręczną. Function hooks dostają wbudowany magazyn danych (store). Gdy Claude chce pobrać stronę przez web fetch, hook najpierw zagląda do magazynu: jeśli ten adres był już pobierany, zwraca kopię z pamięci i w ogóle nie dopuszcza do nowego żądania.
  • Nadpisywanie narzędzi domyślnych. Claude Code ma wbudowaną wyszukiwarkę, ale szczerze mówiąc jestem jej niewielkim fanem — pod spodem działa Brave Search, a ja wolę Exę dostępną przez serwer MCP. Kłopot w tym, że mimo wyraźnych instrukcji agent i tak sięga po wbudowane narzędzie. Zamiast walczyć, owinąłem wyszukiwarkę warstwą pośrednią: sprawdzam, czy mam ustawiony klucz API Exa; jeśli nie — lecimy domyślnym narzędziem; jeśli tak — pytam API Exa o wyniki. Gdyby żądanie nie wyszło, wracam do wbudowanej wyszukiwarki; gdy się uda, wstawiam wyniki prosto do sesji. Efekt uboczny: serwer MCP Exa mogę odinstalować, a Exa i tak pracuje w tle.
  • Web fetch przez własne proxy. Wbudowane pobieranie stron bywa blokowane — nic nie stoi na przeszkodzie, by przepuścić je przez własny serwer pośredniczący.

Do tego dochodzi cały zestaw innych klocków, a moim faworytem jest modyfikowanie interfejsu Claude Code pod własne potrzeby. Czas na przykłady — od prostych po złożone.

Przepis pierwszy: sekrety nie wchodzą do transkryptu sesji

Zdarza się, że Claude Code jakąś komendą Bash wciąga sekret do transkryptu sesji. Klucz API ląduje w historii i zostaje ci już tylko skasowanie sesji albo rotacja klucza. To samo dotyczy adresów e-mail, IP i innych danych wrażliwych. Ratunek: warstwa pośrednia, która przechwytuje wszystko na wejściu i zamazuje sekrety, nim wiadomość trafi do sesji.

Włączamy funkcję komendą CLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1 claude. Dostajemy wtedy dostęp do zupełnie nowej, wbudowanej umiejętności plugin-authoring („tworzenie pluginów”), która przedstawia się: „napisz lub zdebuguj plugin Claude Code zbudowany z function hooks”.

Wpisuję polecenie: „Zrób function hook, który nie dopuści sekretów do transkryptu sesji, wykrywając je po entropii tekstu; dorzuć drugi, blokujący e-maile i wszystko, co wygląda na adres IP”.

(Informacja dodatkowa: detekcja po entropii opiera się na tym, że losowe ciągi znaków — jak klucze API — mają wyraźnie wyższą „nieuporządkowaną” zawartość informacyjną niż zwykły tekst.)

Claude zbudował hooka i poszedł o krok dalej, niż prosiłem — zaraz do tego wrócę. W katalogu .claude pojawiły się pliki plugins.json, transcript_redactor.json, hooks.json oraz redact.ts — ostatni to około 300 linii gotowego kodu. Na samym początku zdefiniował naprawdę elegancki magazyn trzymany w pamięci procesu, dzięki któremu hook może posługiwać się sekretami, nigdy ich nie „widząc”.

Teraz test na żywo. Wklejam klucz API Anthropic i proszę: „wyślij zapytanie do Sonnet 5 i poproś o krótkie opowiadanie”. W tej samej chwili, w której wcisnąłem Enter, sekret został automatycznie zamazany i podmieniony na identyfikator; prawdziwa wartość trafiła do magazynu w pamięci. Gdy Claude składa żądanie, operuje wyłącznie identyfikatorem — a hook tuż przed wysyłką podmienia go na prawdziwy sekret. Żądanie przeszło, opowiadanie wróciło.

Zyskaliśmy więc dwie rzeczy naraz: sekret w ogóle nie wszedł do transkryptu, a mimo to agent mógł nim posłużyć się w naszym imieniu. Użyłem magazynu typu „zmienna”, widocznego dla kolejnych hooków i kolejnych tur. Dostępny jest też magazyn trwały, który przetrwa restarty i osobne sesje — choć sekretów lepiej w nim nie trzymać. Cała konstrukcja przypomina Agent Proxy od Infisical (firmy od zarządzania sekretami): proxy, które dokleja sekret do żądania dopiero w chwili, gdy agent je wysyła.

Przepis drugi: własny interfejs — status wdrożeń Vercel

Druga nowość, którą pokochałem: hooki mogą rysować w Claude Code własne elementy interfejsu. Przykład: za każdym razem, gdy robisz push do main albo mergujesz do main i Vercel wdraża, obok paska statusu pojawia się nowy wiersz z informacjami o wdrożeniu — widoczny wyłącznie wtedy, gdy hook jest aktywny.

Znowu plugin-authoring, tym razem z poleceniem: „Zrób hook, który przy pasku statusu promptu pokaże bieżące wdrożenie Vercel: etap, na którym jest, i jak długo się buduje. Gdy wdrożenie się zakończy, przez następną godzinę trzymaj pasek na dole; kolejne wdrożenia niech się odkładają jeden na drugim. Śmiało przepytaj mnie jak klient i daj kilka prototypów do przetestowania, zanim zaczniesz kodować”.

I to jest istotne: klocków jest na tyle dużo, że niemal wszystko, co da się opisać, da się też zbudować. Claude zadaje mi kilka pytań o wygląd, odpowiadam — i po chwili mam plugin „Vercel deploy status”.

Test: „włącz baner promocyjny, a potem zmerguj do main i wdrażaj”. Na stronie włącza się promocja, a w Claude Code mogę śledzić wdrożenie krok po kroku: kolejne etapy queued → building → ready, przy każdym licznik czasu. Jest przycisk, który chowa pasek i przywraca go na żądanie. Do każdego hooka w pluginie dostaję panel z podglądem danych na żywo — widzę na przykład, że wdrożenie zakończyło się po 5 minutach 50 sekundach. Po odświeżeniu strony baner z ofertą lifetime faktycznie widać.

Przerwa na własne sprawy: szkoła, kohorty, koniec lifetime

(Informacja dodatkowa: poniższy fragment to autopromocja autora — zapowiedzi jego płatnej szkoły i oferty; do samej funkcji function hooks nie wnosi nic.)

Baner pojawił się nieprzypadkowo. Pod koniec przyszłego tygodnia zdejmuję ze strony plan lifetime: każda klasa — obecna i przyszła — będzie sprzedawana osobno. Kto chce mieć wszystko w jednym zakupie, ma na decyzję mniej więcej tydzień. Przez ostatnie dziewięć miesięcy kurs kupiły tysiące inżynierów, w tym wielu z największych firm świata, a ja zaktualizowałem materiał około 250 razy, żeby trzymał poziom rzeczywistości. Sporo technik, których tu uczę, nie znajdziecie nigdzie indziej w internecie.

Idę też w model kohortowy: trzy–cztery razy w roku będę prowadził kohortę poświęconą całemu cyklowi życia oprogramowania tworzonego z agentami AI — najświeższe pomysły na wydawanie i utrzymywanie produkcyjnego kodu pisanego przez agentów. Przykłady aplikacji, które buduję i utrzymuję, są w opisie filmu. Będzie około 25 godzin materiału plus żywe sesje pytań i odpowiedzi. Ponieważ dochodzi komponent live, cena będzie wysoka — a to czyni obecną ofertę lifetime, obejmującą wszystkie przyszłe kohorty w cenie jednej, jeszcze atrakcyjniejszą. Pierwsza kohorta rusza pod koniec września albo na początku października; daty jeszcze doprecyzuję. Ludzie od dawna powtarzają mi: „Ray, podnieś ceny — inni biorą trzy, cztery, pięć razy tyle i oddają jedną dziesiątą wartości”. Pewnie w końcu tak zrobię. Działa 30-dniowa gwarancja zwrotu, z której skorzystało dotąd mniej niż 0,2% kupujących — tak przynajmniej wiem, że klasa trzyma poziom. Wkrótce publikuję też własną infrastrukturę sandboxów dla agentów — jeśli szukacie najkorzystniejszych cenowo na rynku, zajrzyjcie na stronę; jest tam formularz wczesnego dostępu.

Więcej przepisów na hooki

Na jakie jeszcze hooki warto się zdecydować?

  • Przebieg próbny dla analiz danych. Zanim ruszy właściwa analiza — dry run. Hook potrafi blokować każdą „prawdziwą” komendę, dopóki nie wykona się wersja próbna pokazująca, jak wyglądałby wynik tej właściwej.
  • Krzykliwe ostrzeżenia w interfejsie. Połączone z powyższym: wielkimi czerwonymi literami „DZIAŁASZ NA PRODUKCJI” albo „TRYB PRÓBNY”. Świetnie współgra z funkcją ask, czyli pytaniem do użytkownika.
  • Pytania przy rozdętych plikach. Gdy Claude edytuje plik dłuższy niż 1000 linii, hook pyta, czy nie podzielić go na mniejsze. Modele z jakiegoś powodu wciąż lubią produkować monolity po dwa–trzy tysiące linii — tak przynajmniej zapanujemy nad rozrostem. Wystarczy poprosić plugin-authoring o taki hook.
  • Hook wołający model i mówiący głosem. „Zrób hook, który pod koniec każdej tury wypowie się na głos, ale najpierw niech model Haiku streści wszystko, co zostało zrobione”.
  • Nowe narzędzia i wywołania istniejących. Mam na przykład zegar mierzący czas między turami; jeśli tura trwa dłużej niż 10 minut, można wynik zapisać do osobnego pliku, żeby go nie stracić.
  • Audyt dla regulowanych branż. W ochronie zdrowia czy płatności każdy event Claude Code można wraz z wynikami wysyłać do firmowego magazynu logów — pełny ślad tego, co narzędzie robiło.
  • Przykład bez kodowania. Jeśli Claude Code pisze i wysyła newslettery, hook może wstrzymać wysyłkę do momentu, gdy narzędziem ask potwierdzisz, że na pewno chcesz wysłać — i gdy upewni się, że naprawdę zdążyłeś przeczytać tekst. Koniec z wysyłką przez przypadek.

Od CLAUDE.md do hooks.json — i hooki jako dobro zespołu

Function hooks to teraz fundamentalny i bardzo potężny mechanizm Claude Code — dlatego właśnie zostały moją ulubioną funkcją: narzędzie można dostosowywać i przekształcać na tyle sposobów, że trudno je zliczyć. Sprytny trik: uruchom plugin-authoring, wskaż swoje pliki CLAUDE.md i zapytaj: „jakie hooki możemy z nich wyciągnąć, żeby zachowanie było niezawodne i deterministyczne?”. Wszystko, co dotąd trzymałeś w CLAUDE.md jako prośby do modelu, możesz systematycznie przenosić do precyzyjnie zdefiniowanego hooks.json.

A ponieważ function hooks żyją w formie pluginów, wystarczy wrzucić je do wspólnego repozytorium na GitHubie — i cały zespół pracuje na identycznych gwarancjach. Przy okazji: jeśli chcesz szkolenie dla całego zespołu lub organizacji prowadzone osobiście przeze mnie, formularz czeka w opisie. Sporo firm ostatnio o to prosi — chodzi o to, by ich inżynierowie szybko doszli do formy i znaleźli workflow Claude Code i Codex, które realnie działają w ich organizacji.

Claude Code przemówił

W międzyczasie zbudowały się dwa zlecone hooki. Po komendzie /reload plugins wpisuję „hello testing 123” — i Claude Code odzywa się domyślnym głosem Apple: plugin się przeładował, licznik wzrósł z 9 do 10. Podglądam kod: w środku jest mały trwały prompt idący do modelu Haiku — systemowy prompt, który napisałem — uruchamiany komendą $model; wynik trafia do syntezatora mowy.

$model otwiera naprawdę ciekawe drzwi. Można na przykład generować z promptu użytkownika kilka słów kluczowych i przez $http — bezpiecznie — odpytywać firmową bazę wiedzy, po czym wstrzykiwać dodatkowy kontekst do sesji, żeby Claude Code zrobił robotę lepiej. Inna odsłona, z użyciem interfejsu i funkcji ask: zanim otworzysz nowy pull request, Claude Code urządzi ci krótki quiz sprawdzający, czy rozumiesz wprowadzone zmiany — dopiero po zaliczeniu puszcza dalej.

Podsumowanie

Dlatego to moja ulubiona funkcja w Claude Code. Widzę setki zastosowań i na pewno dołożę ich całą masę do swoich projektów — żeby wymuszać standardy, procesy i mnóstwo innych rzeczy. Jeszcze więcej szczegółów znajdziecie w Agentic Coding School, w przyszłych kohortach i na żywych sesjach pytań i odpowiedzi. A jeśli chcesz złapać lifetime z dostępem do wszystkich przyszłych klas i kohort w cenie jednego zakupu — to jest właściwy moment.

10 najważniejszych takeaways — z kontekstem zastosowania

1.Myśl o function hooks jak o warstwach pośrednich — przechwytuj każde wywołanie narzędzia

Na czym polega: każde wywołanie narzędzia w Claude Code (np. Bash) można przechwycić i dopasować do wzorca: nazwa narzędzia plus wyrażenie regularne. Potem decydujesz — blokujesz, modyfikujesz albo przepuszczasz dalej. To ten sam schemat myślenia co middleware w Express.js.

Jak stosować: zacznij od jednej reguły krytycznej, np. blokady komend usuwających zasoby (projekty Supabase, gałęzie, katalogi). Opisz ją umiejętności plugin-authoring i przetestuj na komendach, które celowo mają zostać zablokowane.

Na co uważać: zbyt szeroki wzorzec zablokuje też legalne operacje. Zaczynaj od wąskich dopasowań i obserwuj, co faktycznie zostało przechwycone.

2.Reguły z CLAUDE.md przenoś do hooków, gdy mają działać bez wyjątków

Na czym polega: reguły zapisane w CLAUDE.md tracą siłę w miarę zapełniania kontekstu — model o nich zapomina. Hook jest deterministyczny: odpala się przy każdym zdarzeniu, niezależnie od długości sesji.

Jak stosować: przejrzyj CLAUDE.md i wyławiaj zdania w rodzaju „nigdy nie rób X” — to kandydaci do hooks.json. Zostaw tam kontekst domenowy i preferencje, których nie da się zapisać jako reguły.

Na co uważać: migracja wszystkiego naraz utrudni diagnozę, gdy coś przestanie działać. Przenoś reguły partiami i sprawdzaj zachowanie po każdej zmianie.

3.Nie dopuszczaj sekretów do transkryptu sesji — zamazuj je w locie

Na czym polega: hook przechwytuje wejście, wykrywa sekrety po entropii tekstu (oraz e-maile i adresy IP), podmienia je identyfikatorami, a prawdziwe wartości trzyma w magazynie w pamięci. Agent używa identyfikatorów, a hook podstawia sekret dopiero w chwili wysyłki żądania.

Jak stosować: włącz funkcję komendą CLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1, uruchom plugin-authoring i poproś o hook wykrywający sekrety po entropii. Przetestuj na kluczu do środowiska testowego — w transkrypcji musi od razu pojawić się podmieniony identyfikator.

Na co uważać: detekcja po entropii daje fałszywe trafienia (hashe, tokeny w logach). Do sekretów używaj magazynu zmiennych w obrębie sesji, nie trwałego między restartami.

4.Zamiast prosić agenta o zmianę narzędzia — nadpisz to narzędzie

Na czym polega: instrukcje typu „używaj MCP Exa, nie wbudowanej wyszukiwarki” agent pod presją kontekstu ignoruje. Pewniejsze rozwiązanie: owinąć wbudowane narzędzie warstwą pośrednią, która sama wybiera backend — jest klucz API, to Exa; nie ma go lub API padło, to powrót do domyślnego narzędzia.

Jak stosować: wskaż narzędzie, z którym agent ciągle ma problem mimo promptów, i opisz w plugin-authoring logikę wyboru wraz z awaryjnym powrotem do wersji domyślnej.

Na co uważać: ścieżka awaryjna musi być naprawdę przetestowana — jeśli fallback nie zadziała, agent zostanie bez narzędzia w krytycznym momencie.

5.Cache’uj powtarzalne operacje we wbudowanym magazynie

Na czym polega: function hooks mają własny magazyn danych. Przed operacją typu web fetch hook sprawdza magazyn: ten adres był już pobierany? Wtedy zwraca kopię i pomija żądanie — klasyczny short-circuit, znany z warstw pośrednich.

Jak stosować: owiń operacje, które agent powtarza i które kosztują (pobieranie stron, zapytania do API), logiką „najpierw magazyn, potem sieć”. Wybierz magazyn zmiennych dla sesji albo trwały między restartami — zależnie od potrzeby.

Na co uważać: w trwałym magazynie nie trzymaj niczego wrażliwego i pilnuj aktualności wpisów — pętla na starych danych potrafi zaprowadzić agenta w błąd.

6.Rozszerzaj interfejs: paski statusu, przyciski, panele podglądu

Na czym polega: hook może rysować w Claude Code dynamiczne elementy — np. wiersz z etapem wdrożenia Vercel (queued/building/ready) i czasem budowania, pojawiający się tylko wtedy, gdy jest potrzebny. Każdy hook w pluginie dostaje panel z danymi podglądanymi na żywo.

Jak stosować: opisz w plugin-authoring, co i gdzie ma być widoczne oraz jak długo ma zostać na ekranie (w demie: godzina po zakończeniu wdrożenia). Poproś o prototypy i pozwól się „przeprowadzić wywiadowi” przed finalnym kodem.

Na co uważać: nadmiar wierszy zaśmieca terminal — każdy element powinien znikać, gdy traci aktualność.

7.Funkcja ask: pytaj człowieka w newralgicznych momentach

Na czym polega: hook może zatrzymać agenta i zadać ci pytanie — przed wysłaniem newslettera, przed edycją pliku dłuższego niż 1000 linii („podzielić na mniejsze?”) albo w formie quizu sprawdzającego, czy rozumiesz zmiany przed otwarciem pull requesta.

Jak stosować: wypisz momenty, w których pomyłka jest droga (wysyłka, refaktoryzacja, wdrożenie), i podepnij pod nie pytania. Próg długości pliku dobierz do konwencji repozytorium.

Na co uważać: zbyt częste pytania przeszkadzają w pracy zamiast pomagać — wyklucz ścieżki, gdzie pytanie jest zbędne (pliki generowane, lock files).

8.Buduj ślad audytowy i tryby bezpieczne dla regulowanych branż

Na czym polega: każdy event Claude Code można wysyłać z wynikami do firmowego magazynu logów — w płatnościach czy medycynie to pełna historia działań agenta. Osobno można zablokować „prawdziwe” komendy do czasu wykonania przebiegu próbnego i dodać wielkie ostrzeżenie „PRODUKCJA” lub „TRYB PRÓBNY”.

Jak stosować: owiń wszystkie narzędzia warstwą raportującą do waszego systemu logów; dla analiz danych ustaw kolejność: najpierw dry run, dopiero potem wykonanie.

Na co uważać: sam log nie może stać się źródłem wycieku — nie zapisuj do niego sekretów ani danych osobowych.

9.$model: tani model jako współpracownik hooka

Na czym polega: hook może wołać model (komenda $model) — np. Haiku streści turę, a wynik trafia do syntezatora mowy i Claude Code mówi do ciebie na głos. Tym samym kanałem można generować słowa kluczowe z promptu i przez $http pobierać kontekst z firmowej bazy wiedzy prosto do sesji.

Jak stosować: do zadań pomocniczych (streszczenia, klasyfikacja, ekstrakcja słów kluczowych) używaj szybkiego, taniego modelu, a droższego zostaw właściwej robocie. Mowa przydaje się przy długich zadaniach uruchamianych w tle.

Na co uważać: każde wywołanie to koszt i opóźnienie — streść tylko to, co istotne, i nie przekazuj w zapytaniach do zewnętrznych systemów danych wrażliwych.

10.Traktuj hooki jak kod zespołowy: wersjonuj i udostępniaj

Na czym polega: function hooks żyją jako pluginy (plugins.json, hooks.json, skrypty), więc można je trzymać we wspólnym repozytorium na GitHubie — i wtedy każdy w zespole ma identyczne blokady i procesy, a nie tylko ten, kto dopisał reguły do prywatnego CLAUDE.md.

Jak stosować: prowadź repozytorium pluginów jak każdy inny kod: recenzje, wersjonowanie, testy. Reguły wspólne dla zespołu definiuj raz, w hookach — nie w dziesięciu osobnych plikach konfiguracyjnych.

Na co uważać: hook wymuszający proces bywa frustrujący, gdy jest zbyt sztywny; zostaw świadomą ścieżkę nadpisania dla uzasadnionych wyjątków.