tui-validate
Waliduj interfejsy terminalowe za pomocą sztucznej inteligencji i zrzutów ekranu
Instalacja
Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.
Instalacja
O skillu
Skill do testowania aplikacji TUI (Terminal User Interface) poprzez automatyczne przechwytywanie ich wyjścia i semantyczną walidację za pomocą modelu AI. Zamiast łamliwych testów porównujących tekst, narzędzie rozumie, czy interfejs wygląda poprawnie — sprawdza układ, zawartość i hierarchię wizualną. Obsługuje zarówno zrzuty graficzne (PNG/SVG), jak i walidację tekstową. Idealne do testowania regresji wizualnej aplikacji terminalowych, weryfikacji stanu interfejsu po zmianach oraz tworzenia dokumentacji ze zweryfikowanymi zrzutami ekranu.
Jak używać
Zainstaluj wymagane narzędzia: freeze (narzędzie do przechwytywania zrzutów terminalowych) oraz tmux (opcjonalnie, do pracy z interaktywnymi aplikacjami). Uruchom brew install charmbracelet/tap/freeze, a następnie sprawdź instalację poleceniami freeze --version i tmux -V.
Przygotuj cel walidacji — możesz użyć jednego z czterech typów: pliku z wyjściem ANSI (file:ścieżka), polecenia do wykonania (command:polecenie), sesji tmux (tmux:sesja) lub surowego tekstu (buffer:tekst).
Zdefiniuj kryteria walidacji — opisz, co powinna sprawdzać walidacja. Możesz użyć wbudowanych kryteriów lub napisać własne, np. "sprawdź, czy menu jest widoczne w górnej części ekranu" lub "potwierdź, że licznik pokazuje wartość większą niż 0".
Uruchom skill, podając parametry target (co walidować) i criteria (jakie warunki muszą być spełnione). Opcjonalnie ustaw format wyjścia na svg (domyślnie) lub png, w zależności od potrzeb dokumentacji.
Skill przechwyta wyjście TUI, generuje zrzut ekranu i analizuje go za pomocą modelu AI, sprawdzając czy spełnia podane kryteria. Otrzymasz wynik walidacji wskazujący, czy interfejs wygląda prawidłowo.
Użyj wyników do testowania regresji wizualnej — powtarzaj walidację po zmianach w kodzie, aby upewnić się, że interfejs nadal działa poprawnie bez łamania na drobnych zmianach formatowania.