wg Adama Teza
Artefakt planistyczny ma być wykonywalny albo widzialny
Markdown to format, którego ani ty, ani model nie możecie uruchomić. Nie da się go zweryfikować, więc nie generuje feedbacku. A planowanie bez feedbacku jest zgadywaniem, tylko ładnie sformatowanym.
Plan na papierze miał sens, gdy kod pisaliśmy ręcznie albo gdy agent potrzebował wielu podejść do samej składni. Dziś częściej trafia za pierwszym razem, więc taniej jest zbudować i wyrzucić niż opisać.
Plan w .md jest zawsze wewnętrznie spójny, bo nic nie może go obalić.
dowód Ta sama specyfikacja, trzy formaty
W jednym z nich jest błąd, w pozostałych też
Poniżej opis cyklu życia procesu: osiem stanów, dziewięć przejść. Lewy panel renderuje go jako tabelę markdown. Prawy jako klikalny graf. Na dole ten sam opis przechodzi przez walidator. Wszystkie trzy panele czytają jedną tablicę w JavaScripcie, więc informacja jest identyczna. Różni się tylko to, co da się z nią zrobić.
W specyfikacji brakuje jednego przejścia. Zacznij od lewego panelu i zmierz, ile zajmie ci znalezienie go tam.
lifecycle.spec · 8 stanów · 9 przejść · jedno źródło danych
klikaj stany w grafie
Kompletny i poprawny. Nieinteraktywny, bo to tylko tekst. Żeby cokolwiek sprawdzić, musisz trzymać całą tabelę w głowie i porównywać wiersz z wierszem.
Walidator nie był jeszcze uruchomiony.
Tekst mówi prawdę i nie pomaga. Widok pokazuje ślepy zaułek jako kształt, zanim zdążysz przeczytać nazwy. Uruchomienie zamienia go w zdanie, które trafia do zgłoszenia. To jest cała różnica między planem a artefaktem.
wg Adama Trzy przypadki
Czym zastąpić plan, zależnie od tego, co budujesz
Wireframe w HTML
Agent potrafi zbudować nawet złożone interakcje za pierwszym razem, w jednym pliku. Potem sam zrobi zrzut ekranu przez CLI przeglądarki, kliknie w to i przeczyta konsolę. Zrozumienie wizualne dostajesz nie tylko ty, ale i model. Przeniesienie gotowego wireframe do produktu bywa jednym strzałem.
Skrypt, który odpalasz
Logi z uruchomienia niosą więcej informacji niż kolejny plik .md. Pozwalają porównywać wersje szybko, czasem deterministycznie, a wyjście można formatować i kolorować. Taki skrypt bywa gęsto okomentowany i wciąga kontekst z bazy kodu. Integracji agent zwykle nie trafia za pierwszym razem, ale wykonywalny input i tak bije ścianę tekstu.
Kod zamiast opisu kodu
Planowanie przez robienie. Generuj i regeneruj bezpośrednio w aplikacji. Intuicyjnie wydaje się to złe, zwłaszcza przy większych projektach, ale w wielu scenariuszach lepiej iterować na rzeczy prawdziwej niż na sztucznej strukturze obok niej. Kontekst agent dociągnie potem, choćby z git status.
wg Adama Kiedy jednak tekst
Markdown z warstwą wykonywalną
Jeśli naprawdę potrzebujesz kontekstu przenoszonego między sesjami, użyj .mdx albo .mdsvx, czyli markdownu z osadzonymi komponentami. Dokument dostaje wtedy warstwę wizualną i interaktywną, a nie tylko akapity. Nadal się go czyta, ale można go też obejrzeć i kliknąć.
komentarz Dlaczego to działa
Chodzi o koszt wykrycia błędu, nie o format pliku
Wireframe i skrypt mogą się wywalić i to jest ich największa zaleta. Błąd wychodzi w minutę, a nie po dwóch dniach implementacji. Dokument tej właściwości nie ma, bo nie istnieje stan, w którym akapit zwraca exit 1.
Druga rzecz to stratność tłumaczenia. Opis w markdownie zostawia luki, które model wypełnia zgadywaniem, a każda taka luka to jedna decyzja podjęta bez ciebie. HTML i działający skrypt są już w tej samej domenie co produkt, więc konwersja jest w dużej mierze mechaniczna.
komentarz Gdzie to ma granice
Decyzja biznesowa nie ma trybu uruchomienia
Ta zasada dotyczy planów o kształcie kodu. Nie dotyczy planów o kształcie decyzji. Pytanie „który wariant liczymy”, „jaki próg przyjmujemy”, „załącznik idzie mailem czy linkiem” nie ma odpowiedzi, którą wyprodukuje uruchomienie skryptu, bo to nie jest pytanie techniczne. Tego rodzaju ustalenia dalej warto mieć zapisane, bo ich wartością jest akceptacja, a nie weryfikacja.
Drugi wyjątek to pamięć. Przy kilku równoległych sesjach agentów na jednym repozytorium ktoś musi wiedzieć, co już zostało ustalone i wdrożone. Notatka jest do tego dobrym narzędziem, bo jej zadaniem nie jest specyfikowanie, tylko przypominanie.
Wszystko poniżej warstwy decyzji, czyli „jak dokładnie ma wyglądać ten ekran” albo „co ten parser ma zrobić z tym plikiem”, faktycznie rozstrzyga się szybciej wykonywalnym artefaktem niż akapitem.
komentarz Co z tym zrobić
Cztery zmiany, które kosztują zero
- 01 Zanim napiszesz plan, sprawdź, czy da się go zastąpić. Jeśli odpowiedzią na pytanie jest kształt ekranu albo zachowanie funkcji, buduj artefakt. Jeśli odpowiedzią jest czyjaś zgoda, pisz notatkę.
- 02 Wireframe zamiast opisu UI. Jeden plik HTML, prawdziwe dane, klikalne stany. Agent zobaczy go tak samo jak ty, a to on będzie potem przenosił go do produktu.
- 03 Skrypt zamiast opisu logiki. Wejście, wyjście, kolorowe logi. Dwie wersje algorytmu porównasz w kilkanaście sekund zamiast dyskutować, która brzmi rozsądniej.
- 04 Notatki tnij do tego, czego artefakt nie unosi. Ustalenia, założenia, stan wdrożenia. Reszta i tak zdezaktualizuje się szybciej, niż ktokolwiek zdąży ją przeczytać.