reproduce-reduce-regress
Systematic workflow for debugging by reproducing bugs with real data, reducing test cases to minimal examples, and adding regression tests
Installation
Pick a client and clone the repository into its skills directory.
Installation
About this skill
Systematic workflow for debugging by reproducing bugs with real data, reducing test cases to minimal examples, and adding regression tests
How to use
Zainstaluj skill w swoim projekcie, kopiując katalog reproduce-reduce-regress do folderu .claude/skills w repozytorium.
Gdy napotkasz błąd, zacznij od kroku Reproduce: skopiuj dokładne dane wejściowe, które go wyzwalają, nie upraszczając ich. Utwórz test, który zawiera rzeczywiste typy i struktury z kodu, w którym błąd się pojawia. Uruchom test i potwierdź, że zwraca ten sam komunikat błędu co w produkcji.
Przejdź do kroku Reduce: zamiast komentować kod, utwórz wiele wariantów testów z opisowymi nazwami (na przykład test_minimal_one_field, test_with_queries). Używając wyszukiwania binarnego, usuwaj połowę danych wejściowych na raz i sprawdzaj, czy błąd nadal się pojawia. Kontynuuj aż do znalezienia najmniejszego zestawu danych, który go wyzwala.
Znajdź również minimalny przypadek przechodzący, który jest jak najbardziej zbliżony do przypadku nieprzechodzącego. Różnica między nimi wskaże przyczynę błędu.
W kroku Regress zachowaj wszystkie warianty testów, zarówno te, które się nie powiodą, jak i te, które przejdą. Po naprawieniu błędu testy nieprzechodzące stają się testami regresji, a testy przechodzące dokumentują oczekiwane zachowanie. Nazwij je według numeru problemu: test_issue_1356_*.
Unikaj antypatternów: nie komentuj kodu w celu testowania różnych scenariuszy, nie modyfikuj jeden test wielokrotnie, nie usuwaj wariantów testów po znalezieniu błędu i nie teoryzuj o przyczynach przed odtworzeniem problemu.