Agenci AI
Jeden człowiek, cztery role AI, zero dostępu do produkcji
Orkiestrator planuje i recenzuje, Claude Code bierze zadania trudne i wizualne, Codex implementuje, czat assetów maluje. Żaden agent nie robi push, merge ani deployu – decyzję podejmuje człowiek po przeglądzie innym modelem niż autor.
4.1 Role
Agenci nie są „zespołem, który sam robi grę”. Każdy ma wąską rolę i jasno opisane granice, a wszystkie decyzje, które da się cofnąć tylko z trudem, zostają przy człowieku.
- Marcinwłaściciel
Cel, priorytety, decyzje odbioru, playtest. Jedyny, kto scala do gałęzi głównej i wdraża.
- Orkiestratorczat Claude
Plan, briefy z zakresem i listą „czego nie ruszać”, recenzje raportów, rekomendacje decyzji.
- Claude Codeagent w terminalu
Zadania trudne i wizualne: rendering, wygląd, diagnoza, przeglądy krzyżowe, ta strona.
- Codexagent w terminalu
Implementacja: funkcje rozgrywki, backend, generator aren, testy i raporty z liczbami.
- Czat assetówOpenAI image_gen
Grafika 2D i plansze 3D na zamówienie: broń, ręce, koncept zombie, pojazdy.
4.2 Zasady
- Bez push, merge, deployu i sekretów. Pilnują tego hooki zestawu narzędzi Claude Code: blokują każdy
git push, zmiany na gałęzi głównej, publikację Workera, zapis do R2 i odczyt plików z kluczami – zanim polecenie się wykona. - Przegląd krzyżowy. Pracę recenzuje inny model niż autor, tylko do odczytu; testy mutacyjne i pomiary w kopiach poza repozytorium.
- Najwyżej 3 równoległe sesje. Każda w osobnym worktree, z wolnymi portami i własnym raportem.
- Zakres i „czego nie ruszać”. Każdy brief wymienia pliki i moduły spoza zadania. Raport zaczyna się od potwierdzenia, że nie zostały dotknięte.
- Nowe funkcje za flagą. Dotychczasowy tryb ma zostać bazą – co do piksela.
- Najpierw wygląd, potem kod. Makieta, plansza albo koncept idzie do akceptacji, zanim powstanie implementacja. Ta strona też tak powstała.
ZABLOKOWANE przez hook Neon City: release bez --dry-run.
Hook Neon City: zostały procesy testowe. Zatrzymaj te, które uruchomiłeś w tej sesji, i sprawdź ponownie; jeśli należą do właściciela, wymień je w odpowiedzi i zakończ.
4.3 Cykl: zlecenie → raport → przegląd → decyzja
Brief to krótki dokument: cel, zakres, lista „czego nie ruszać”, kryteria odbioru i oczekiwany format raportu. Wykonawca pracuje w osobnym worktree i kończy raportem z liczbami: testy przed i po, zrzuty, pomiary, ryzyka i rzeczy, których nie sprawdził.
Raport trafia do przeglądu. Recenzent nie wierzy na słowo: odtwarza build z czystego eksportu, wprowadza celowe błędy, żeby zobaczyć, czy testy je złapią, i ogląda zrzuty. Werdykt jest jeden z trzech: ODRZUCONE, PRZYJĘTE Z UWAGAMI albo PRZYJĘTE.
Dopiero po przyjęciu zmiana trafia na podgląd i staging, gdzie gra w nią Marcin. Scalenie i wdrożenie zawsze wykonuje człowiek.
4.4 Studium przypadku: TRAM-1
TRAM-1 wprowadził do zwykłego meczu tramwaje: rozkład, postoje, kontakt z graczem i korytarz ostrzegawczy D5. Raport autora był długi, testy zielone, a 20 aren wygenerowało się identycznie w dwóch przebiegach. Mimo to pierwszy przegląd zmianę odrzucił.
- Przegląd 1 · ODRZUCONE
Blokujące: korytarz D5 był niewidoczny z góry. Trójkąty miały odwróconą kolejność wierzchołków, a materiał rysuje tylko przednią stronę. Geometria istniała, więc testy i statystyki przechodziły. Do tego tramwaj widoczny w co-op rozjeżdżał się z kolizją, a stojący na postoju zadawał obrażenia.
- Poprawka 1
Odwrócony winding, test znaku normalnej i nowy smoke liczący piksele D5 w stałym kadrze: 23 → 1001 pikseli w dzień, 190 → 1212 nocą. Obrażenia tylko powyżej 0,5 m/s i raz na przejazd; postój: 0 HP. Predykcja–serwer: 0 m.
- Przegląd 2 · PRZYJĘTE Z UWAGAMI
D5, czas renderu i postój zamknięte. Dwie uwagi: aktor wypchnięty przed czoło bywał „niesiony” (2–4% prób, do 11 m), a zdalni gracze przy 150 ms opóźnienia byli widoczni do 1,74 m wewnątrz tramwaju.
- Poprawka 2 · PRZYJĘTE
Niesienie dłuższe niż 1 m: 0/96 prób w Łodzi i 0/96 w Krakowie. Maksymalne wejście zdalnych postaci w tramwaj: 0,055 m, 0 klatek powyżej 0,1 m. Testy: 1634 backend i 937 klient, 0 błędów.
Lekcja: test, który sprawdza, że geometria istnieje, nie sprawdza, że ją widać. Od tej poprawki odbiór elementów wizualnych wymaga pomiaru pikseli w kadrze, a nie tylko zrzutu w raporcie.
Autor sam to zapisał w raporcie poprawki: wcześniejsze obrazy i deklaracja PASS nie stanowiły odbioru D5. Przegląd znalazł błąd, którego żaden z 1600 testów nie mógł zobaczyć.
4.5 Fragmenty briefów i werdyktów
Krótkie, zanonimizowane wyjątki – bez ścieżek, adresów i nazw gałęzi.
Bez kodu źródłowego gry na stronie. Bez push, bez tworzenia repo, bez deployu. Najpierw projekt i makieta do akceptacji.
Każdy prompt z zakresem i listą „czego nie ruszać”. Nowe funkcje za flagą; tryb dotychczasowy = baza.
Bez edycji pakietów wspólnych, sieci, parsera OSM, audio ani katalogu drugiego agenta. Bez amend, push i deployu.
Werdykt: ODRZUCONE. Raport autora podaje „czytelność D5” jako odebraną, a żaden zrzut tego nie pokazuje.
Wcześniejszy odbiór D5 był błędny: geometria istniała, ale pas nie był widoczny z góry; wcześniejsze obrazy i PASS nie stanowią odbioru.
Werdykt: PRZYJĘTE Z UWAGAMI. Blokujące R-01 jest zamknięte, co potwierdza mój pomiar pikseli.