W części książki o tym, jak powstała, napisaliśmy: „Sesje nie rozmawiają ze sobą bezpośrednio”. To było uproszczenie. Rozmawiały — krótkimi wiadomościami. Tyle że wiadomość nigdy nie niosła pracy, a po kilku obrotach przestawała dochodzić.
Na czym to stało
Książkę „Powiedz mi «tak»” pisał zespół dziesięciu ról AI: dyspozytor, redaktor prowadzący, dwóch piszących (Claude i GPT), krytyk, kontroler zgodności z faktami, sufler szukający cytatów w zapisach rozmów, redaktor wydania angielskiego, skład i paratekst. Każda rola to osobna sesja modelu językowego z własnym plikiem instrukcji. Wszystkie pracowały na jednym repozytorium git — wspólnym katalogu z pełną historią zmian. Ja jestem autorem: dyktuję fakty i decyzje, do plików nie piszę.
Dwa kanały
Repozytorium niosło całą pracę. Rozdziały, kanon faktów, raporty, kontrole. Do tego trzy pliki, które robiły za system nerwowy: STAN.md z jedną linią „Klawiatura” — czyja teraz kolej; SKRZYNKA.md — polecenia, które przychodzą w trakcie tury, czytane po każdym etapie pracy; katalog Czat/ — kopie zleceń.
Wiadomości między sesjami niosły tylko sygnał. Dyspozytor pisał do sesji roli: „już — krytyk: przeczytaj rozdziały 1–10”. Rola po turze odpisywała meldunkiem: „gotowe, commit 3f2a…”. Bez treści — treść była w repozytorium. Nocą, kiedy mnie nie było, role przekazywały sobie „już” same, łańcuchem: redaktor → piszący → tłumacz → krytyk.
Dlaczego praca nigdy nie szła wiadomością: bo wiadomość może nie dojść. Plik zostaje.
Jedna tura

1. Ja → dyspozytor: „już”.
2. Dyspozytor → repozytorium: commit z linią „Klawiatura: krytyk”. Zanim wyśle wiadomość — inaczej rola odmówi pracy, bo w repozytorium nie jej kolej.
3. Dyspozytor → krytyk: wiadomość „już — krytyk: …” z listą plików do przeczytania i tym, co ma oddać. Kopia w Czat/.
4. Krytyk pobiera repozytorium i czyta.
5. Praca: raport krytyka.
6. Krytyk → repozytorium: commit oznaczony skrótem roli, a przed nim skrypty kontrolne (imiona, cytaty, uprawnienia).
7. Krytyk → dyspozytor: meldunek „gotowe, commit …”.
8. Dyspozytor pobiera, sprawdza, daje „już” następnej roli.
Gdzie się sypało
2 października, 01:08. Kontroler skończył turę i nikomu tego nie powiedział. Wszystko stało szesnaście minut. Od tej nocy każde „już” kończy się prośbą o meldunek do dyspozytora.
4 października, 03:06–03:17. Dwie sesje dyspozytora naraz — jedna w chmurze, jedna na laptopie — drugą noc z rzędu. Dogadały się przez skrzynkę: chmura ustąpiła.
4 października, noc. Redaktor zapisał w repozytorium: jego meldunki „od Nocy 3 nie dochodzą (blokada wiadomości między sesjami do odpowiedzi autora)”.
8 października. Sesja dyspozytora została zastąpiona nową. Meldunki szły jeszcze do starej, której nikt już nie czytał.
9 października, 07:30 i 09:05. Sesji tłumacza i kontrolera nie było na liście sesji. Piszący nie miał komu wysłać „już” — zostawił je w skrzynce.
9 października, 08:14. Redaktor: „aplikacja wstrzymała moje wiadomości do innych sesji do następnego wpisu autora w mojej sesji”.
9 października, 18:32. Tłumacz wysłał gotowy przekład do składu. Wiadomość nie doszła: limit.
Mechanizm, który z tego wychodzi: aplikacja przepuszczała 10 wiadomości między sesjami pomiędzy dwoma wpisami człowieka. Potem wiadomości danej sesji czekały na następny wpis człowieka w tej sesji. Dlatego po kilku obrotach komunikacja stawała i każdą sesję trzeba było obudzić z osobna — wejść do niej i coś wpisać.
Obejścia
Każde zlecenie ma kopię w Czat/. Jeśli wiadomość nie doszła, rola i tak znajdzie zlecenie w repozytorium.
Skrzynka czytana po każdym etapie, nie tylko na początku tury.
Zamiast czekać na meldunek: pobrać repozytorium i spojrzeć na linię „Klawiatura”. Jeśli przeszła dalej — tura się skończyła, nawet jeśli nikt tego nie powiedział.
Nocą jedno zlecenie na rolę, z pełnym mandatem, i łańcuch bez dyspozytora — żeby nie wyczerpać limitu.
Dyspozytor w chmurze i dyspozytor na laptopie piszą do siebie wyłącznie przez repozytorium: wiersz w skrzynce i plik w Czat/. Sesja w chmurze nie widzi sesji na laptopie.
Tekst przygotował Claude na podstawie mojego projektu. Słowa układa maszyna, ja daję wsad.