Powrót do strony głównej

CPG-konwejer dla kodowania AI bez długu technicznego

Artykuł opisuje konwejer CPG do automatycznego sprawdzania kodu generowanego przez AI w Claude. Hooki analizują commity, dostarczają kontekst grafu i oceniają ryzyka. Przypadki pokazują naprawę bugów i metryki jakości.

CPG-ubezpieczenie dla vibe-kodowania w Claude
Advertisement 728x90

Automatyzowany CPG-conveyor do bezpiecznego kodowania z AI

Claude w ciągu 38 minut wygenerował 47 plików i 1900 linii kodu, w tym refaktoryzację i migrację. Prędkość działania AI przekracza możliwości ludzkiej weryfikacji, co prowadzi do nagromadzenia technicznego długu bez automatycznych środków kontroli.

CPG-conveyor rozwiązuje ten problem: analizuje każdy commit, dostarcza kontekst z grafu kodu przed generacją oraz ocenia ryzyka w PR. Dzięki temu AI-kodowanie staje się procesem kontrolowanym.

Główne problemy AI-kodowania

Generowanie kodu przez AI bez weryfikacji powoduje powtarzalne błędy:

Google AdInline article slot
  • Duplikowanie logiki zamiast przenoszenia jej do wspólnych modułów, co zwiększa objętość kodu i gałęzie.
  • Brak widoczności grafu wywołań: zmiana jednego pliku dotyka dziesiątek zależności.
  • Rozbieżność dokumentacji: niezgodność liczb w tekście i kodzie, wykryta w 14 przypadkach podczas audytu.

Architektura CPG-conveyora

Conveyor wykorzystuje hooki Claude Code na pięciu etapach:

  • Rozpoczęcie sesji: wycinek projektu — liczba metod, plików, średnia cyklomatyczna złożoność.
  • Przetwarzanie promptu: wyodrębnianie kontekstu według klasy (lokalizacja, złożoność metod, wejściowe/wyjściowe wywołania).
  • Ostrzeżenia przed modyfikacją: wysoka złożoność, TODO w pliku, publiczne ścieżki.
  • Po-commicie: analiza jakości i zakresu zmian.
  • Zakończenie sesji: analiza po zmianach złożoności i objętości.

Szczegóły commit_analysis.py

Kluczowy hook commit_analysis.py uruchamia się po git commit:

  • Sprawdzenie aktualności CPG na podstawie hashu commita w porównaniu do HEAD.
  • Aktualizacja inkrementalna: gocpg update.
  • Analiza jakości: cyklomatyczna złożoność, TODO/FIXME, kod debugowy, przestarzałe metody.
  • Analiza wpływu: wywołujące metody, interfejsy dostępu.

Model otrzymuje raport: «zmieniono 4 pliki, dotknięto 12 metod, złożoność wzrosła z 8 do 12, 8 wywołań pod ryzykiem».

Google AdInline article slot

Zalety kontekstu przed generacją

Kontekst z CPG przed promptem zmienia zachowanie modelu. Bez niego — modyfikacje na ślepo. Z nim: świadomość złożoności (8), wywołań (8 bezpośrednich), TODO, interfejsów (CLI, ale nie REST).

To zmniejsza ryzyko kompatybilności i zwiększa precyzję generacji.

Git-hooks do aktualności grafu

CPG ulega starzeniu przy każdym commicie. Hooki post-commit, post-merge, post-checkout uruchamiają asynchronicznie gocpg update:

Google AdInline article slot
  • Pełny parsowanie: 85 sekund.
  • Inkrementalne dla 2 plików: 2–5 sekund.
  • Dla 10–20 plików: 5–12 sekund.

Programista nie czeka — graf aktualizuje się w tle.

Integracja z CI/CD

W CI: budowa GoCPG, odzyskanie cache’a, aktualizacja od gałęzi bazowej, publikacja w komentarzu do PR + annotacje SARIF.

Recenzent widzi:

  • Liczbę zmienionych plików i węzłów grafu.
  • Uderzenia w cache.
  • Ryzyka i znalezione zagrożenia bezpieczeństwa.

Claims_validator.py do walidacji dokumentacji

Weryfikator skanuje markdown pod kątem liczbowych twierdzeń («95 handlerów») i dopasowuje je do zapytań SQL do CPG. Wykrywa rozbieżności w ciągu sekund.

Przypadek: walidacja historii użytkownika

Zadanie: sprawdzić 83 historie pod kątem pokrycia 5 interfejsami (CLI, REST, TUI, MCP, ACP).

AI wygenerował StoryValidationRunner (450 linii, 39 testów — wszystkie zielone).

Pierwsze uruchomienie: 0 pokrycia z powodu błędów (ścieżki Windows/Unix, interaktywne vs pakietowe).

Po poprawkach: 46 pełne, 32 częściowe, 2 nie znalezione, 3 niewykonalne.

Następnie: fałszywe sygnały z regex (pierwszy fragment ścieżki, brak słów stop). Dokładność wzrosła, metryka «pełne pokrycie» spadła z 49 do 46 — znak poprawy.

Testy jednostkowe nie łapały problemów rzeczywistego grafu.

Rozszerzone weryfikacje w recenzji kodu

Conveyor rozwinął się do 13 sprawdzianów:

  • Ostrzeżenia dla publicznych metod (CLI/REST/MCP).
  • Rejestracja nowych handlerów.
  • Zależności między modułami.
  • Analiza git diff.
  • Oddzielny Go CPG.
  • Weryfikacja testów dla nowych plików.
  • Analiza transmisyjna wywołań.
  • Delta pokrycia historii.

Przechowywanie historii jakości w DuckDB

Szybkie zrzuty po analizie: metody, złożoność, TODO, martwy kod. W ciągu tygodnia: +46 metod, złożoność stabilna, ciężkie metody ↓.

Co jest ważne

  • Kontekst CPG przed generacją zmniejsza błędy jeszcze przed ich wystąpieniem.
  • Inkrementalne aktualizacje grafu trwają sekundy.
  • Automatyczne raporty w PR skupiają recenzję na ryzykach.
  • Walidacja liczb w dokumentacji zapobiega rozbieżności faktów.
  • Metryki jakości w DuckDB pokazują trendy projektu.

— Editorial Team

Advertisement 728x90

Czytaj dalej