MONO KODA Blog
Wszystkie wpisy

Co się dzieje, gdy do vibe codingu wnosisz 25 lat doświadczenia

Wieloagentowa redakcja. Proaktywny domowy towarzysz AI. Gra multiplayer zbudowana w 5 godzin. Trzy projekty, jedno pytanie: gdzie dokładnie kończy się człowiek, a zaczyna AI?

What Happens When You Bring 25 Years of Experience to Vibe Coding

Wieloagentowa redakcja. Proaktywny domowy towarzysz AI. Gra multiplayer zbudowana w 5 godzin. Trzy projekty, jedno pytanie: gdzie dokładnie kończy się człowiek, a zaczyna AI?

Chcę opowiedzieć wam o mojej przygodzie z AI i vibe codingiem (choć wolałbym to nazywać AI Engineeringiem) - i o tym, co się dzieje, gdy wnosisz do tego prawdziwe doświadczenie, a nie tylko prompty.

Trochę tła

Gdy byłem w 7. klasie, koledzy mieli komputery z procesorami Pentium. A ja miałem Commodore 64. Rok później przesiadłem się na 286 - już o pokolenie przestarzały. Dysk twardy mi padł, więc pracowałem na około 30 dyskietkach: jedna do uruchomienia DOS-a, druga do załadowania QBasica, kolejna do załadowania moich projektów. Każda sesja zaczynała się od 10-minutowego rytuału wymiany dyskietek, żeby w ogóle móc pisać kod.

Budowałem interfejsy paneli sterowania ze Star Treka. Komputer pokładowy z Enterprise - ten, który rozumie kontekst, przewiduje potrzeby, odzywa się, gdy ma do powiedzenia coś wartościowego - to było to, co chciałem urzeczywistnić, zaczynając od fajnego UI i animacji.

Kilka lat później, gdy Microsoft wypuścił Visual Studio, zrobiłem coś, co przeraziło moich rodziców. Miałem jakieś 14 lat. Napisałem do Microsoftu maila z prośbą o studencką wersję VS. Trzy tygodnie później ze Stanów Zjednoczonych przyszła wielka paczka. Pełny pakiet Visual Studio, podręcznik do programowania na 1000+ stron, gadżety, vouchery na kursy. Mama wpadła w panikę - była przekonana, że będziemy musieli za to wszystko zapłacić.

Nie musieliśmy. Po prostu się uczyłem. Dniami i nocami, kiedy tylko miałem wolną chwilę. Najpierw Visual Basic, potem PHP, bo chciałem budować strony, potem Flash i ActionScript, potem C#. Wszystkiego sam. Nie dlatego, że kochałem kod dla samego kodu - dlatego, że kod był narzędziem, które pozwalało mi rozwiązywać problemy, jakie widziałem wokół siebie. Problemy, których nikt inny nie rozwiązałby tak, jak ja chciałem (oczywiście w oparciu o rozmowy z innymi). Musiałem nauczyć się robić to sam.

Ten napęd przeprowadził mnie od programisty przez architekta systemów do CTO - a potem ostro skręciłem. Zrozumiałem, że nie chcę projektować backendów. Chciałem projektować to, czego użytkownicy naprawdę dotykają. Programowanie zawsze było moim narzędziem do rozwiązywania prawdziwych ludzkich problemów. Więc przeszedłem do UX. Nie odchodząc od rozwiązywania problemów - bliżej ludzi, dla których je rozwiązywałem.

25 lat później wciąż robię to samo. Narzędzia się zmieniły - od QBasica na dyskietkach do Claude Code w terminalu. Ambicja nie.

Trzy projekty, nad którymi teraz pracuję, testują to samo pytanie z różnych stron: jak naprawdę wygląda skuteczna współpraca człowieka z AI, gdy wyjdziesz poza demo?

Oto, co odkryłem i co może was zaskoczyć.

Ballywood - Gdy 6-latka zostaje product ownerem ;-)

Ekran z gry Ballywood
Ekran z gry

Zaczęło się od eksperymentu. Siedziałem z kolegą (pozdro, Mateusz), rozmawialiśmy o Claude Code i powiedziałem: "Pokażę ci, jakie rzeczy można zbudować." Wymyśliłem pomysł na prostą grę, otworzyłem terminal i zacząłem.

5 godzin później mieliśmy 10 000+ linii kodu. Pełną izometryczną grę przeglądarkową multiplayer - proceduralnie generowane nieskończone mapy z biomami, cyklami dnia i nocy, AI zombie, fizyką ognia, systemem pogody. Czysty HTML5 Canvas i JavaScript, zero frameworków, zero bundlerów. Po prostu node server.js i grasz.

Możecie sprawdzić sami tutaj (sorry, ale tylko Desktop): https://digitalmindnews.com/kabareton/

Najbardziej zaskoczyła mnie nie prędkość. To, jak zadziałała współpraca z AI - dawanie mu otwartych pytań i "wolnej woli". Było wiele przykładów funkcjonalności, które wyłoniły się z tego, co wymyślaliśmy razem. Rąbiesz drewno. Podpalasz je. W nocy pojawiają się zombie. Zombie boją się ognia. Deszcz gasi ogień. Nagle podejmujesz prawdziwe taktyczne decyzje - bronisz się ogniem czy uciekasz? To wyłoniło się z rozmów, ze współpracy między moim kolegą, mną i Claude Code.

Było też wiele drobiazgów, które przychodziły mi do głowy, i dzięki precyzyjnym promptom mogłem szybko dodawać ukryte przedmioty, mini gry, opisywać, jak piłka ma się animować, żeby była płynniejsza. Również pełne rozwiązania UX i UI stanowiły ogromny % mojej pracy. Ale to prowadzi do innego tematu:

Vibe coding to nie "AI robi wszystko za mnie". Animacja chmur była doskonałym przykładem. Claude Code nie potrafił zrozumieć, jak mają się animować nad izometryczną mapą. Spędziłem sporo czasu na prompt engineeringu - starannie tłumacząc zasady renderowania, kolejność warstw, wzorce ruchu. Gdy natrafiliśmy na poważny błąd renderowania, musiałem napisać 15+ zdań niezwykle precyzyjnego opisu technicznego, uwzględniającego sortowanie głębi, kotwiczenie kafelków, viewport culling. Piętnaście minut później zadziałało. Wniosek: im lepiej sam rozumiesz technologię, tym lepiej komunikujesz intencje AI, tym szybciej osiągasz wyniki. Twoja wiedza techniczna nie staje się przestarzała - staje się twoim interfejsem.

Potem przyszła najlepsza część. Moja 6-letnia córka pograła w grę przez kilka minut i wróciła z prośbami o nowe funkcje. Rzeczy, które chciała dodać. W ciągu 30 minut jej pomysły były zaimplementowane i działały. Było to bardzo zabawne, a dla mnie też trochę abstrakcyjne, że możemy tak pracować - że moja córka od razu zaczęła wyobrażać sobie kreatywne rzeczy.

Ścieżka od pogaduszek z przyjaciółmi i budowania gier zaczęła się zmieniać. Dziecko coś sobie wyobraża. Mówi tacie. Tata mówi AI. To istnieje. Ta ścieżka - od wyobraźni dziecka do działającego oprogramowania w pół godziny - tak właśnie wygląda demokratyzacja tworzenia oprogramowania. Nie marketingowy slogan. Wtorkowy wieczór.

PressGarden - Redakcja, w której 80% kodu nie dotyczy pisania

Ekran ze strony digitalmindnews.com
Ekran ze strony digitalmindnews.com

PressGarden to wieloagentowy system, który prowadzi wirtualną redakcję. Scrapuje ~30 źródeł (TechCrunch, Wired, SecurityWeek, Dark Reading...), grupuje artykuły w podtematy za pomocą NLP, a następnie redaktorzy AI - sześciu fikcyjnych dziennikarzy o odrębnych specjalizacjach i stylach pisania (wszystkich przygotowałem ja, w oparciu o research z czołowych redakcji jak Washington Post, NYT itd.) - syntetyzują oryginalne artykuły. Tytuły, tagi, SEO, zdjęcia główne z Pexels, linkowanie wewnętrzne. Pełna ścieżka: RSS/Web -> Scraping -> Klastrowanie -> Synteza AI -> Publikacja na WordPress.

Zacząłem to ponad rok temu, zanim fala "agentic AI" miała nazwę. Napisałem rozbudowaną specyfikację funkcjonalną (przez rozbudowaną mam na myśli 20+ stron), zaprojektowałem persony redakcyjne (osobne pliki dla każdej persony), zmapowałem całą ścieżkę. Zbudowałem działający prototyp, postawiłem WordPressa, kupiłem serwer. A potem trafiłem na ścianę - jakość treści generowanych przez AI była niewystarczająca. Zbyt wiele błędów, zbyt wiele przypadków brzegowych. Zrozumiałem, że technologia nie jest jeszcze gotowa, i odłożyłem projekt na 9 miesięcy. Ale i tak - udało mi się zbudować coś działającego, co - patrząc na moje doświadczenie - kazałoby mi studiować programowanie, API itd. Pod kątem wiedzy to świetne; pod kątem szybszego prototypowania, możliwości skupienia się na rozwiązaniu problemu, dążenia prosto do celu - byłyby to miesiące nieustannej frustracji.

Trochę newsów możecie poczytać tutaj: https://digitalmindnews.com/ :-)

Gdy Anthropic wypuścił nową wersję Claude Code, wszystko się zmieniło. Ta sama baza kodu, która tonęła w bugach, nagle dostała współpracownika, który potrafił rozumować o logice, znajdować problemy strukturalne i pomagać mi systematycznie refaktoryzować. Podnieśliśmy skuteczność ścieżki z 14% do 79% w jednym sprincie. I tak - to jest coś, co z mojego doświadczenia trzeba ustawić: KPI, co liczy się jako sukces. Bez tego trudno przejść przez cały kod i sprawdzić, czy działa dobrze. Myślę też, że na tym poziomie abstrakcji nie chcę mikrozarządzać Claude Code - raczej walidować kluczowe KPI.

A oto wniosek, który zaskoczył mnie najbardziej: wygenerowanie artykułu to jedno wywołanie API. Upewnienie się, że artykuł jest naprawdę dobry - to 80% bazy kodu. Walidatory artykułów. Syntezator treści (walidacja i czyszczenie). Zakazane słowa w tytułach ("revolutionizing", "game-changing" itd.). Punktacja SEO. Cztery warstwy deduplikacji - oparta na hashach dla opublikowanych artykułów, nakładanie się słów kluczowych przed syntezą, podobieństwo tytułów w ramach cyklu, nakładanie się tematów z historią. Każda warstwa wyłapuje coś innego.

Kolejna lekcja: architektura mikroserwisowa, którą zaprojektowałem na etapie prototypu, nigdy nie zadziałała na produkcji. Wszystkie te osobne serwisy ze wspólnym messagingiem - piękne na papierze (Same fundamenty zajęły prawie 2 tygodnie - architektura techniczna, badanie, jak naprawdę działają prawdziwe redakcje, przemyślenie przypadków brzegowych, zanim napisałem choć jedną linijkę kodu), bezużyteczne w praktyce. Wróciliśmy do monolitu. I to ten monolit faktycznie dostarcza 15 artykułów w jednym przebiegu do digitalmindnews.com, z prawdziwymi użytkownikami wracającymi po treści. Jak to interpretuję? Za bardzo wszedłem w mikrozarządzanie.

Zelda - Budowa komputera ze Star Treka, naprawdę

Narzędzie konsolowe do rozpoznawania głosu Zeldy
Narzędzie konsolowe do rozpoznawania głosu Zeldy

Pamiętacie panele sterowania ze Star Treka, które budowałem na tym zepsutym 286? Przez lata wracałem do tego pomysłu - wersje w Visual Basicu, eksperymenty webowe, prototypy koncepcyjne. Przygotowałem nawet projekt w C do animowania interfejsów konsolowych (te pomarańczowe okrągłe linie itd.). Marzenie o komputerze pokładowym, który rozumie kontekst i odzywa się, gdy ma do powiedzenia coś wartościowego, nigdy nie zniknęło.

Teraz remontuję dom. I zdecydowałem, że to czas, by go naprawdę zbudować.

Zelda będzie proaktywnym domowym towarzyszem AI (przynajmniej to chcę osiągnąć). Nie chatbotem. Nie Alexą. Kluczowa różnica: Zelda nie będzie czekać na pytania. Będzie monitorować domowe czujniki - temperaturę, ruch, kalendarz (mam nadzieję, że w następnym kroku spróbujemy podłączyć kamery z mojego lokalnego systemu bezpieczeństwa, by uzyskać więcej informacji o tym, co dzieje się w domu) - będzie słuchać, kto mówi w pokoju, i sama decydować, kiedy zainterweniować.

Teraz mam PoC na moim komputerze, rozpoznawanie głosu wielu mówców, framework dla pamięci, proaktywne zachowanie itd. Architektura opiera się na 6 pracach naukowych: CoALA dla trójpoziomowej pamięci, PROPER dla kalibracji proaktywności, ProUtt dla drzew intencji z kompromisem eksploracja/eksploatacja - to prace, które znalazłem podczas researchu przy przygotowywaniu specyfikacji promptów. Poza tym... to nie są dekoracyjne odniesienia - kształtują faktyczną strukturę kodu: 4 typy wyzwalaczy (czas, zdarzenie, stan, luka epistemiczna), 3 poziomy pamięci, pętla postrzegaj-planuj-działaj-refleksja.

Choć pisałem o pewnych rzeczach technicznych, to, na co poświęcam najwięcej czasu przy promptowaniu (dyskusjach z Claude), to interakcje człowiek-AI. Najtrudniejszy problem koncepcyjny: kiedy AI powinno się odezwać, a kiedy zachować milczenie? Zbyt wiele interwencji - irytujące. Zbyt mało - bezużyteczne. No i wiecie - nie chcę mieć w domu "Kasandry" ;-) Każda iteracja, każdy przypadek brzegowy to kwestia doświadczenia, pain pointów, sytuacji z prawdziwego życia. Nie ma mowy, żebym wyliczył je wszystkie, ale odkryłem, że potrafię uogólnić te zachowania, które muszą być obecne. Inni mogą wykorzystać tę ogólną wiedzę i dostosować - albo poprosić o pomoc prawdziwych ludzi. Widzicie, jak to pomaga skupić się na rozwiązaniach, otoczeniu, doświadczeniu zamiast na tworzeniu programów, które da się rozwijać (piekło MVP)?

Co do prędkości, oto kolejny ciekawy wniosek: kompletny silnik proaktywności został zbudowany i przetestowany w 1 dzień. Pamięć, percepcja, podejmowanie decyzji, integracja z LLM, orkiestracja, i18n, działające przykłady - 2 dni. Inne nudne rzeczy ;-) zajęły jakieś 6-7 dni. Od pustego katalogu do PoC, który słucha, myśli i decyduje, kiedy się odezwać, w około 10 dni. Wciąż sporo do zrobienia, trochę bugów, testy, walidacje, zwiększanie wydajności (zaraz kupię trochę mocy obliczeniowej z RunPod), ale... 10 dni... WOW.

A dla tych, którzy zastanawiają się, dlaczego "Zelda" - nazwa pochodzi od mojej ulubionej postaci z dzieciństwa z czasów Nintendo. Niektóre obsesje nie znikają. Po prostu czekają, aż technologia je dogoni :-)

Podsumowanie

Trzy różne projekty. Ten sam wzorzec pod spodem każdego z nich.

Ballywood nauczyło mnie, że współpraca z AI działa najlepiej, gdy człowiek wnosi precyzję, a AI wnosi prędkość - i że magia dzieje się w rozmowie między nimi. Prośba 6-latki o funkcję zaimplementowana w 30 minut. Błąd animacji chmur naprawiony 15 zdaniami starannego opisu technicznego. Człowiek nie staje się przestarzały. Człowiek staje się interfejsem, mostem.

PressGarden nauczyło mnie, że generowanie treści przez AI to problem jakości inżynierskiej, a nie problem generowania. Model pisze z łatwością. Wszystko wokół modelu - pozyskiwanie źródeł, walidacja, deduplikacja, KPI, wiedza kiedy mikrozarządzać, a kiedy odpuścić - to tu mieszka prawdziwa praca.

Zelda nauczyła mnie, że najtrudniejsze problemy w AI nie są obliczeniowe. Są relacyjne. Kiedy AI powinno się odezwać? Jak projektować zaufanie do maszyny, która mieszka w twoim domu? Jak odpowiedzialnie obchodzić się z najbardziej intymnymi danymi?

Żaden z tych problemów nie mieszka wewnątrz modelu. Wszystkie mieszkają w przestrzeni między systemem a człowiekiem.

Dzieciak z 30 dyskietkami piszący maile do Microsoftu nie uczył się tylko kodować. Szukał sposobów na rozwiązanie problemów, które były dla niego ważne - i uczył się wszystkiego, czego musiał, by tam dotrzeć.

25 lat później narzędzia są nie do poznania lepsze. Misja jest dokładnie ta sama: uczynić ludzkie życie trochę lepszym, jedno rozwiązanie naraz.


P.S. Obecnie eksploruję, co dalej. Jeśli twój zespół rozwiązuje trudne problemy na styku AI, UX i myślenia systemowego - pogadajmy. Najlepiej pracuję tam, gdzie liczy się precyzja, a ludzie wciąż są w pętli.

P.P.S. Anthropic Tak tylko macham ręką, może zadziała jak z Microsoftem