Developer · FREE

Bisect regresji

Gdy kiedys dzialalo: git bisect z predykatem znajduje pierwszy zly commit, nie winnego czlowieka. Agent nie czyta 80 commitow po kolei.

reviewed:

Jak zainstalować

  1. Uzupełnij pola poniżej (albo zostaw nazwy zmiennych i dopisz w czacie). Wartości z Skill creatora na liście podstawiają się same.
  2. Kopiuj, potem wklej w Claude.ai (instrukcje projektu) albo ChatGPT (Custom Instructions).
  3. Albo pobierz SKILL.md i połóż w folderze skilli Claude Code.
SKILL
Objaw: [OBJAW]. Dobry SHA albo tag: [DOBRY]. Zly SHA (domyslnie HEAD): [ZLY]. Predykat (exit 0 = dobry, !=0 = zly): [PREDYKAT].

NIE czytaj commitow po kolei. NIE zgaduj autora. NIE PISZ PATCHA NA WEJSCIU.

Kontrakt predykatu (git bisect run):
- exit 0 = dobry / old
- exit 1-127, poza 125 = zly / new
- exit 125 = skip (nie buduje sie albo nie da sie przetestowac)
- inny kod = abort sesji
Zakaz oznaczania niebudujacego commita jako dobry.

Zwracasz:

1. Predykat do wklejenia. Musi byc deterministyczny: ten sam commit = ten sam wynik. Jesli [PREDYKAT] pusty albo zalezy od zegara / sieci / klikniecia - napisz skrypt i stop, nie odpalaj bisect.
   Zanim `bisect start`: odpal predykat dwa razy na [DOBRY] (musi exit 0) i dwa razy na [ZLY] (musi !=0 i !=125). Rozjazd = predykat niedeterministyczny, stop.
2. Komendy:
   `git bisect start`
   `git bisect bad [ZLY]`
   `git bisect good [DOBRY]`
   `git bisect run sh -c '<build> || exit 125; [PREDYKAT]'`
   Pozycja skryptu: poza repo (albo sciezka, ktorej checkout nie nadpisze).
3. Po znalezieniu, w tym formacie:
   - SHA pierwszego zlego
   - subject
   - pliki w tamtym commicie (`git show --stat --format=fuller <sha>`)
   - hipoteza czemu tam (1-3 zdania, z diffu, nie z nazwiska)
   - test, ktory PADA na tamtym SHA i PRZECHODZI na rodzicu (`git checkout <sha>~1`)
   - minimalny revert albo patch: jedna zmiana
4. `git bisect reset` na koncu. Nie zostawiaj detached HEAD.

Jesli [DOBRY] pusty - popros o tag / SHA / date, w ktorym dzialalo, i stop.
Jesli [OBJAW] nie da sie sprawdzic skryptem - napisz czego brakuje do predykatu i stop.
Jesli historia squashowana: odpal bisect, na wyjsciu napisz "granularnosc = PR, nie linia".
Jesli merge wprowadza regresje z galezi: `--first-parent` i zaznacz to.
Dywiz "-". Kod po angielsku.

Zanim wkleisz

Skill vs zły prompt

Zły prompt

Przejrzyj caly git log i znajdz kto zepsul, asap.

Skill

Objaw: [OBJAW]. Dobry SHA albo tag: [DOBRY]. Zly SHA (domyslnie HEAD): [ZLY]. Predykat (exit 0 = dobry, !=0 = zly): [PREDYKAT].

NIE czytaj commitow po kolei. NIE zgaduj autora. NIE PISZ PATCHA NA WEJSCIU.

Kontrakt predykatu (git bisect run):
- exit 0 = dobry / old
- exit 1-127, poza 125 = zly / new
- exit 125 = skip (nie buduje sie albo nie da sie przetestowac)

Użyj z tym narzędziem

Lekcja: claude-start-06-claude-dla-programisty

Pytania

Jak użyć skilla "Bisect regresji" w Claude?

Uzupełnij pola w nawiasach (albo weź je z profilu Skill creator na /skille), kliknij Kopiuj i wklej treść do instrukcji projektu w Claude.ai. W Claude Code kliknij Pobierz SKILL.md i połóż plik w folderze skilli. Skill działa też w ChatGPT (Custom Instructions). Nie chowa się za paywallem: kopia jest darmowa.

Kiedy tego skilla NIE używać?

Nie gdy bug byl od zawsze (brak dobrego commita). Nie gdy predykat wymaga klikania w UI bez skryptu. Nie gdy historia to squash bez sensu - i tak sprobuj, ale powiedz ze granularnosc to PR. Nie zamiast raport-repro (tam ticket objawu, tu SHA).