develop-web-game
Use when Codex is building or iterating on a web game (HTML/JS) and needs a reliable development + testing loop: implement small changes, run a Playwright-based test script with short input bursts and intentional pauses, inspect screenshots/text, and review console errors with
Installation
Pick a client and clone the repository into its skills directory.
Installation
About this skill
Use when Codex is building or iterating on a web game (HTML/JS) and needs a reliable development + testing loop: implement small changes, run a Playwright-based test script with short input bursts and intentional pauses, inspect screenshots/text, and review console errors with render_game_to_text.
How to use
Skonfiguruj zmienne środowiskowe, ustawiając CODEX_HOME (domyślnie ~/.codex), WEB_GAME_CLIENT na ścieżkę skryptu Playwrighta oraz WEB_GAME_ACTIONS na plik referencyjny action_payloads.json. Umiejętność instaluje się automatycznie w katalogu $CODEX_HOME/skills.
Zdefiniuj pojedynczą funkcję lub zachowanie do implementacji. Każda iteracja powinna skupiać się na jednym celu, aby ułatwić testowanie i debugowanie.
Implementuj najmniejsze możliwe zmiany w kodzie gry (HTML/JavaScript). Upewnij się, że gra ma pojedynczy canvas oraz funkcję window.render_game_to_text() zwracającą tekstową reprezentację stanu gry, którą skrypt testowy może odczytać.
Dodaj hook window.advanceTime(ms) do gry, aby Playwright mógł deterministycznie sterować przebiegiem klatek. Bez tego testy mogą być niestabilne. Jeśli plik progress.md istnieje, przeczytaj go i potwierdź oryginalny prompt użytkownika na początku (prefiks: "Original prompt:"), a także zanotuj pozostałe TODO i sugestie. Jeśli plik nie istnieje, utwórz go z oryginalnym promptem na górze.
Sprawdź dostępność Playwrighta — uruchom
npx playwright --versionlub zainstaluj go jako lokalną zależność. Następnie uruchom skrypt testowy z $WEB_GAME_CLIENT po każdej znaczącej zmianie kodu, aby zweryfikować działanie gry.Przeanalizuj wyniki testów: zrzuty ekranu, tekstową reprezentację stanu gry oraz błędy z konsoli. Dostosuj kod na podstawie obserwacji i powtórz cykl aż do osiągnięcia celu iteracji.