O projekcie
Eksperyment, nie produkt — i to zastrzeżenie jest częścią tej pozycji. Strażnik AI dla Pull Requestów: dodatkowa bramka jakości obok strażników skryptowych, testów i smoke’ów, nie ich zamiennik. Powstał jako sprawdzenie jednego pomysłu: czy model potrafi pilnować klas błędów, których nie da się złapać skryptem. Nigdy nie został uruchomiony na prawdziwym Pull Requeście ani na self-hosted runnerze i nie jest utrzymywany.
Drugie zastrzeżenie: 11 z 15 commitów napisał Claude Code. Autorska jest architektura i nadzór nad agentem, nie klepanie kodu. Dlatego projekt stoi w portfolio nie jako wdrożone narzędzie, lecz jako dowód, jak prowadzi się agenta: zakres, granice uprawnień, obowiązkowa weryfikacja i pomiar wyniku.
Repozytorium sprawdzane ma 39 strażników skryptowych, 84 testy, 18 smoke’ów i 10 goldenów — gęstą, darmową siatkę, której model nie ma dublować. Nisza jest wąska: rejestr znanych błędów ma cztery wpisy bez żadnej ochrony automatycznej — test niszczący wspólną bazę deweloperską, wartość zero traktowana jak brak wartości, build wynoszący zmiany z katalogu roboczego i niewidzialny element jako kandydat na największy element strony. Tylko po to jest model.
Dwa z czterech stopni kosztują zero tokenów. Filtr zakresu odrzuca większość uruchomień, zanim model zobaczy diff — PR treściowy zatrzymuje się tu. Potem subagent-strażnik z własnym kontekstem i wyłącznie prawem odczytu, a po nim obowiązkowo drugi agent-krytyk, którego jedynym zadaniem jest obalić znalezisko pierwszego. Decyzję „przepuścić czy zablokować” podejmuje plik konfiguracyjny, nie model.
Do tego osiem plików kontrolnych — cztery z prawdziwymi błędami i cztery mylące, ale poprawne — żeby o skuteczności dało się mówić liczbą, a nie opinią. Egzekucja w dwóch warstwach: hak pre-push zatrzymuje wypchnięcie przed GitHubem, a check w CI dodaje komentarze inline na Pull Requeście.
Problem
Gęsta siatka strażników skryptowych nie łapie błędów, które wymagają rozumienia intencji — a wpięcie modelu w każdy commit pali tokeny na rzeczach, które skrypty robią za darmo.
Rozwiązanie
Czterostopniowa bramka, w której model wchodzi tylko do czterech klas błędów bez ochrony automatycznej, filtr zakresu i brama decyzji działają bez tokenów, a każde znalezisko przechodzi przez obowiązkowego krytyka.
Funkcje
- eksperyment, nie produkt: nigdy nie uruchomiony na prawdziwym Pull Requeście, nieutrzymywany
- 11 z 15 commitów napisał Claude Code — autorska jest architektura i nadzór
- filtr zakresu zero tokenów: PR treściowy nie dociera do modelu
- subagent-strażnik z własnym kontekstem i wyłącznie prawem odczytu
- obowiązkowy agent-krytyk nastawiony na obalenie znaleziska
- brama decyzji z pliku polityki, nie z modelu
- osiem plików kontrolnych: cztery z błędami, cztery mylące, ale poprawne
- hak pre-push i check w CI z komentarzami inline
Architektura
- Forma
- plugin Claude Code z marketplace’em w tym samym repozytorium; zero zależności; wersja 0.4.1
- Repozytorium sprawdzane
- prywatne repo platformy szkoleń — silnik jest domenowo ślepy, wiedza domenowa mieszka tam
- Egzekucja
- `.githooks/pre-push` przed wysłaniem oraz check „Straznik AI (Claude)” po pushu
- Stan
- eksperyment zakończony; repozytorium publiczne, bo pomiar może się komuś przydać; licencja MIT
Technologie
- Node.js
- Claude Code
- GitHub Actions
Autor
Krzysztof LeszczyńskiAutomation & Plugins