Zpět na domů

CPG-konvejér pro AI-kódování bez technického dluhu

Článek popisuje CPG-konvejér pro automatizovanou kontrolu AI-generovaného kódu v Claude. Háky analyzují commity, poskytují kontext grafu a hodnotí rizika. Případy ukazují opravy bugů a metriky kvality.

CPG-pojistka pro vibe-kódování v Claude
Advertisement 728x90

Automatizovaný CPG-konvej pro bezpečné AI programování

Claude za 38 minut vygeneroval 47 souborů a 1900 řádků kódu, včetně refaktoringu a migrace. Rychlost AI překračuje schopnosti lidské kontroly, což vede ke kumulaci technického dluhu bez automatizovaných opatření.

CPG-konvej řeší tento problém: analyzuje každý commit, poskytuje kontext z grafu kódu před generací a hodnotí rizika v PR. Přeměňuje "vibroprogramování" na kontrolovaný proces.

Hlavní problémy vibroprogramování

AI-generování bez ověření způsobuje opakující se chyby:

Google AdInline article slot
  • Duplikace logiky místo přesunu do společných modulů, což zvyšuje objem kódu a větvení.
  • Chybějící přehled o volacím grafu: úprava jednoho souboru ovlivňuje desítky závislostí.
  • Odchylka dokumentace: neshody čísel v textech a kódu byly zjištěny v 14 případech během auditu.

Architektura CPG-konveje

Konvej využívá hooky Claude Code na pěti fázích:

  • Zahájení relace: snímek projektu – počet metod, souborů, průměrná cyklomatická složitost.
  • Zpracování promptu: extrakce kontextu podle třídy (umístění, složitost metod, vstupní/výstupní volání).
  • Upozornění před úpravou: vysoká složitost, TODO v souboru, veřejné cesty.
  • Po-commitech: analýza kvality a rozsahu změn.
  • Ukončení relace: post-analýza změn složitosti a objemu.

Detaily commit_analysis.py

Klíčový hook commit_analysis.py běží po git commit:

  • Kontrola aktualizace CPG podle hashu commitu proti HEAD.
  • Inkrementální aktualizace: gocpg update.
  • Analýza kvality: cyklomatická složitost, TODO/FIXME, ladící kód, zastaralé metody.
  • Analýza dopadu: volající metody, přístupové rozhraní.

Model obdrží zprávu: «upraveno 4 soubory, dotčeno 12 metod, složitost vzrostla z 8 na 12, 8 volajících je pod rizikem».

Google AdInline article slot

Výhody předgenerovaného kontextu

Kontext z CPG před promptem mění chování modelu. Bez něj – slepé úpravy. S ním: znalost o složitosti (8), voláních (8 přímých), TODO, rozhraních (CLI, ale ne REST).

To snižuje riziko kompatibility a zvyšuje přesnost generování.

Git-hooky pro aktuálnost grafu

CPG se ztrácí při každém commitu. Hooky post-commit, post-merge, post-checkout spouští gocpg update asynchronně:

Google AdInline article slot
  • Úplný pars: 85 sekund.
  • Inkrement pro 2 soubory: 2–5 sekund.
  • Pro 10–20 souborů: 5–12 sekund.

Vývojář nečeká, graf se aktualizuje na pozadí.

Integrace do CI/CD

V CI: sestavení GoCPG, obnovení mezipaměti, aktualizace od základní větve, publikování do PR-komentáře + SARIF anotací.

Recenzent vidí:

  • Počet upravených souborů a uzlů grafu.
  • Zásahy do mezipaměti.
  • Rizika a bezpečnostní nálezy.

Claims_validator.py pro dokumentaci

Validátor skenuje markdown na číselné tvrzení («95 handlerů») a porovnává je s SQL dotazy k CPG. Rozdíly detekuje za sekundy.

Případ: validace uživatelských příběhů

Úkol: ověřit 83 příběhů na pokrytí 5 rozhraními (CLI, REST, TUI, MCP, ACP).

AI vygeneroval StoryValidationRunner (450 řádků, 39 testů – vše zelené).

První spuštění: 0 pokrytí kvůli chybám (cesty Windows/Unix, interaktivní vs balíčkový režim).

Po opravách: 46 plné, 32 částečné, 2 nenalezeny, 3 neaplikovatelné.

Dále: falešné signály z regex (první segment cesty, absence stop-slov). Přesnost stoupla, metrika «plné pokrytí» klesla z 49 na 46 – znak zlepšení.

Unit testy nechytily problémy reálného grafu.

Rozšířené kontroly v code review

Konvej se rozšířil na 13 kontrol:

  • Upozornění pro veřejné metody (CLI/REST/MCP).
  • Registrace nových handlerů.
  • Mezimodulové závislosti.
  • Analýza git diff.
  • Samostatný Go CPG.
  • Ověření testů pro nové soubory.
  • Tranzitivní analýza volání.
  • Delta pokrytí příběhů.

Uložení historie kvality v DuckDB

Snímky po analýze: metody, složitost, TODO, mrtvý kód. Během týdne: +46 metod, složitost stabilní, těžké metody ↓.

Co je důležité

  • Předgenerovaný CPG-kontext snižuje chyby před generací.
  • Inkrementální aktualizace grafu trvají sekundy.
  • Automatické zprávy v PR zaměřují revizi na rizika.
  • Validace čísel v dokumentaci zabrání odchylce faktů.
  • Metriky kvality v DuckDB ukazují trendy projektu.

— Editorial Team

Advertisement 728x90

Číst dál