Zielony guzik i rura, która szła w złą stronę
Ciao! 🇵🇱🇮🇹
Ktoś podesłał mi zdjęcie klimatyzatora z rurą wsadzoną z powrotem do tego samego pokoju, który miał chłodzić.
Śmiech, a zaraz potem to samo uczucie, które miałem tydzień wcześniej przy zupełnie innym urządzeniu.
Lecimy z tematem 🚀
Rura idzie w złą stronę
Klimatyzator z tego zdjęcia wygląda jak porządnie zainstalowany. Włączony, wyświetlacz świeci, rura solidnie podpięta do obudowy. Tylko że drugi koniec rury wraca do tego samego pokoju, który miał ochłodzić. Gorące powietrze z kompresora ląduje dokładnie tam, skąd wyszło. Im dłużej urządzenie pracuje, tym cieplej robi się w środku.
Dokładnie to samo zobaczyłem tydzień wcześniej, tylko w MailerLite.
Budowałem automatyzacje mailowe dla lejka Akademii Negocjacji. Dziesięć automatyzacji, każda po kilka kroków: opóźnienie, warunek, mail. Wszystko przez API, więc każdy krok najpierw szedł przez test, zanim trafił do prawdziwego konta.
Test miał iść z flagą --dry-run. Skrypt sprawdza payload, pokazuje, co by wysłał, i nie dotyka żadnej realnej skrzynki. Robię tak przy każdej integracji, która dotyka prawdziwych ludzi. MailerLite, Buffer, SON, wszystko najpierw dry-run, dopiero potem produkcja.
Przy jednym z uruchomień flaga zniknęła z komendy. Zwykła literówka przy kopiowaniu argumentu z wcześniejszej linijki w historii terminala. Skrypt przyjął to bez ostrzeżenia, bo brak flagi oznaczał tryb domyślny, czyli wysyłkę prawdziwą. Payload wyglądał identycznie w obu wersjach. Guzik działał tak samo. Jedyna różnica między testem a mailem do uczestników kursu leżała w jednym brakującym słowie w komendzie terminala.
Złapałem to, zanim cokolwiek wyszło z systemu. Ale przez chwilę cała automatyzacja stała gotowa do odpalenia, z kierunkiem ustawionym dokładnie odwrotnie niż powinien, i nic w interfejsie tego nie sygnalizowało.
Automatyzacja, która wygląda gotowa, i automatyzacja, która faktycznie robi to, co powinna, to często ten sam kod z jedną odwróconą wartością. Z zewnątrz nie widać różnicy.
Od tamtej pory każda automatyzacja u mnie trzyma się jednej zasady: nigdy nie aktywuje się sama, nawet gdy wygląda kompletna. Aktywacja to zawsze osobna decyzja, podjęta świadomie, nie efekt uboczny testu.
Klimatyzator z rurą skierowaną do środka będzie chłodził równie głośno, co ten ustawiony poprawnie. Różnicę poczujesz dopiero po godzinie w tym pokoju.
🛠️ Narzędzie
Claude Code hooks
Skrypty, które Claude Code odpala sam, bez pytania, przed albo po każdym narzędziu, niezależnie od tego, co model akurat postanowił zrobić. U mnie hook bash-safety.sh blokuje twardo komendy typu rm -rf, force push czy DROP TABLE, zanim jakikolwiek model zdąży je wykonać. Polecam, bo to różnica między zasadą „nie kasuj produkcji” a sytuacją, w której fizycznie nie da się tego zrobić bez mojej zgody, a druga rzecz naprawdę działa, gdy coś idzie nie tak.
code.claude.com/docs/en/hooks-guide
🌍 Ze świata
-
Claude-powered AI coding agent deletes entire company database in 9 seconds. Agent znał zasadę „nigdy nie usuwaj bez pytania”, sam ją przywołał, złamał mimo to. Zasada w prompcie to za mało, potrzeba czegoś, co fizycznie zatrzyma rękę.
-
Uber burned through its entire 2026 AI budget in four months. COO przyznaje, że nie potrafi połączyć wzrostu użycia AI ze wzrostem liczby realnych funkcji dla klientów. Licznik rósł, wynik nie.
-
Revisiting Using AI Coding Assistants: You’re Holding It Wrong Edition. Tytuł mówi wszystko: problem z asystentami AI rzadko leży w samym narzędziu, częściej w tym, w którą stronę je ustawiłeś.
😄 Na koniec

Ktoś w komentarzach zaproponował upgrade: druga rura, tym razem od klimatyzatora sąsiada, też skierowana do środka. Cyrkulacja zamknięta, obaj zadowoleni.
Jeśli ktoś w Twoim otoczeniu powinien to przeczytać, prześlij mu ten numer. To najlepsza forma wsparcia.
Cieszę się, że tu jesteś! Aby nie przegapić kolejnych wpisów i pomóc mi tworzyć więcej takich treści, dołącz do grona subskrybentów. To nic nie kosztuje.
Dołącz do Marini Brief →