extract-fuzzer-repro
Wyodrębnij projekt Noir z logów fuzzer testów CI i odtwórz błędy lokalnie
Instalacja
Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.
Instalacja
O skillu
Umiejętność Claude'a do automatycznego ekstrakcji minimalnego projektu Noir z logów błędów fuzzer testów w GitHub Actions. Gdy test CI fuzzer zawiedzie, ta umiejętność wyciąga wygenerowany kod źródłowy, dane wejściowe ABI i flagi kompilatora potrzebne do odtworzenia problemu na lokalnej maszynie. Oszczędza czas debugowania, eliminując ręczne kopiowanie i parsowanie logów.
Jak używać
Przejdź do uruchomienia GitHub Actions, które zawiera nieudany test fuzzer, i skopiuj adres URL strony zadania. Adres ma format: https://github.com/noir-lang/noir/actions/runs/RUN_ID/job/JOB_ID — wyodrębnij z niego JOB_ID.
Pobierz logi zadania za pomocą GitHub CLI, uruchamiając polecenie z JOB_ID z poprzedniego kroku. Logi zostaną zapisane do pliku tekstowego, który będziesz analizować.
Przeszukaj logi w poszukiwaniu sekcji AST zawierającej wygenerowany kod Noir. Szukaj linii zaczynających się od "unconstrained fn main" lub "fn main" — to będzie kod źródłowy do odtworzenia. Zwróć uwagę na sekcję "ABI Inputs" poniżej kodu, która zawiera wartości testowe.
Sprawdź logi pod kątem specjalnych flag kompilatora wymaganych do odtworzenia błędu, takich jak "-Zenums" dla wyrażeń match lub flagi optymalizacyjne. Zanotuj wszystkie flagi wymienione w logach — będą potrzebne do uruchomienia projektu.
Utwórz nowy projekt Noir za pomocą nargo, a następnie skopiuj wyodrębniony kod AST do pliku src/main.nr. Utwórz plik Prover.toml i wpisz tam wartości ABI Inputs z logów.
Uruchom projekt lokalnie za pomocą nargo execute, dołączając wszystkie flagi kompilatora zanotowane w kroku 4. Jeśli błąd się powtórzy, odtworzenie jest udane i możesz zacząć debugowanie.