Jak reviewovat AI-generovaný kód: Praktický checklist

· 8 min čtení · Kategorie: Návody
Jak reviewovat AI-generovaný kód: Praktický checklist

AI kód vypadá perfektně. A přesně to je ten problém.

Kód generovaný AI projde casual review snáz než lidský — je čistě formátovaný, konzistentně pojmenovaný, s komentáři na správných místech. Jenže pod tím naleštěným povrchem číhají edge cases, které model ignoroval. Bezpečnostní díry, o kterých neví. A business logika, kterou nikdy nepochopil.

Data jsou jasná: Veracode otestoval přes 100 LLM modelů ve 4 jazycích a zjistil, že AI-generovaný kód obsahuje 2,74× více zranitelností než kód napsaný člověkem. A 53 % týmů, které AI kód nasadily do produkce, objevilo bezpečnostní problémy až poté.

Tohle není argument proti AI kódování. Je to argument pro lepší review. Tady je checklist, který používám — a který doporučuji každému, kdo vibe-coduje víc než Hello World.

2,74× Více XSS zranitelností v AI-generovaném kódu oproti lidskému | Veracode 2025 GenAI Code Security Report
45 % AI-generovaného kódu obsahuje bezpečnostní chyby | Veracode
35 CVE Nových zranitelností přímo způsobených AI-generovaným kódem za březen 2026 | Georgia Tech Vibe Security Radar

Proč AI kód potřebuje jiný review

Klasické code review funguje na předpokladu, že autor kódu chápal problém a svým řešením komunikuje záměr. U AI kódu tohle neplatí. Model nemá záměr — má pravděpodobnostní distribuce tokenů. A tohle vytváří specifické kategorie chyb:

Falešná sebejistota. AI nikdy nenapíše „// TODO: nejsem si jistý, jestli tohle funguje." Všechno vypadá definitivně a kompletně. Proto revieweři AI kódu snáz přehlédnou problém — mozek říká „tohle vypadá v pohodě," protože kód je čistý a strukturovaný.

Tautologické testy. Když AI napíše implementaci a pak k ní testy, testuje co kód dělá, ne co by měl dělat. Test projde. Kód je špatně. Obojí je konzistentní — konzistentně špatné.

Spolknuté errory. AI modely mají tendenci chyby tiše polykat místo toho, aby je propagovaly. Prázdné catch bloky, ignorované return values, chybějící validace — to všechno vypadá jako „čistý kód," ale ve skutečnosti maskuje problémy.

🔍 Klíčový mindset shift

U lidského kódu hledáte chyby v implementaci. U AI kódu hledáte chyby v porozumění. Model neví, co váš systém dělá. Nezná vaše business pravidla. Nevidí kontext. Vaše úloha jako reviewera není opravit syntax — je ověřit, že model pochopil problém.

Checklist: 7 oblastí, které musíte zkontrolovat

1. Business logika a požadavky

Tohle je oblast číslo jedna, kde AI selhává. Model splní zadání doslova — ale ne ducha zadání.

  • ☐ Odpovídá kód skutečnému požadavku z ticketu/zadání, ne jen vašemu promptu?
  • ☐ Jsou implementována všechna business pravidla, i ta implicitní (která by kolega z domény znal)?
  • ☐ Je řešení přiměřeně komplexní? AI má tendenci overengineerovat — přidávat abstrakce, které nepotřebujete.
  • ☐ Funguje kód správně v kontextu celého systému, ne jen izolovaně?

2. Edge cases a error handling

AI modely konzistentně ignorují hraníční případy. Null, prázdné pole, záporná čísla, nevalidní vstupy, race conditions — to všechno jsou slepá místa.

  • ☐ Co se stane s null/undefined/prázdným vstupem?
  • ☐ Jak kód reaguje na neočekávané typy (string místo number, pole místo objektu)?
  • ☐ Jsou catch bloky neprázdné? Logují se chyby? Propagují se správně?
  • ☐ Existují timeout/retry mechanismy pro síťové operace?
  • ☐ Jsou hraníční hodnoty ošetřeny (max int, prázdný string, pole s jedním prvkem)?

3. Bezpečnost

Tohle je kritické. AI kód je 1,88× pravděpodobnější pro improper password handling, 1,91× pro insecure object references a 2,74× pro XSS. Georgetown CSET zjistil, že 86 % AI-generovaného kódu selhalo v XSS obraně.

  • ☐ Jsou všechny uživatelské vstupy sanitizované před použitím v SQL, HTML, shellu?
  • ☐ Používá kód parametrizované queries místo string concatenation pro SQL?
  • ☐ Jsou autentizace a autorizace správně implementované? (AI často zapomene na auth middleware)
  • ☐ Nejsou v kódu hardcoded credentials, API klíče nebo tokeny?
  • ☐ Je CORS správně nakonfigurovaný? (AI často nastaví `*` pro jednoduchost)
  • ☐ Jsou soubory a cesty validované proti path traversal?

⚠️ Vibe Security Radar: reálné důsledky

Georgia Tech sleduje CVE způsobené AI-generovaným kódem. V březnu 2026 jich evidují 35 nových — nárůst z 6 v lednu a 15 v únoru. A přes 5 600 „vibe-coded" aplikací obsahovalo přes 2 000 zranitelností, 400+ exponovaných tajných klíčů a 175 případů odhalených osobních údajů. To nejsou akademické výhrady — to jsou reálné produkční incidenty.

4. Výkon a škálovatelnost

AI rádo generuje řešení, které funguje na 10 záznamech, ale zkolabuje na 10 000.

  • ☐ Nejsou síťové požadavky v cyklech? (N+1 problém — AI tohle dělá extrémně často)
  • ☐ Je databázový dotaz efektivní? Má správné indexy? Nevrací zbytečně mnoho dat?
  • ☐ Jsou velké operace paralelizované místo sekvenčních? (AI defaultně píše await v cyklu)
  • ☐ Existuje paginace nebo limity pro velké datasety?

5. Integrace a konzistence

AI nezná váš codebase. Nevědí, že máte utility funkci na formátování data, existující error handler, nebo konvenci pro pojmenování.

  • ☐ Používá kód existující utility a helpery místo duplikace?
  • ☐ Dodržuje konvence projektu (naming, struktura, patterns)?
  • ☐ Nepřidává zbytečné závislosti? (AI rádo importuje knihovnu pro jednu funkci)
  • ☐ Jsou typy konzistentní s existujícími interfaces a modely?

6. Kvalita testů

Jak jsem zmínil — AI testy jsou často tautologické. Testují implementaci, ne specifikaci.

  • ☐ Testují testy co kód MÁ dělat, ne co aktuálně dělá?
  • ☐ Existují testy pro edge cases a chybové stavy?
  • ☐ Jsou test descriptions psané před implementací? (best practice pro AI workflow)
  • ☐ Neobsahují testy hardcoded výsledky zkopírované z aktuálního chování?

7. Over-engineering a zbytečná komplexita

AI má tendenci psát „enterprise-grade" kód i pro triviální problémy. Factory pattern pro jeden typ objektu. Abstract base class pro jednu implementaci. Strategy pattern pro dva if-else.

  • ☐ Je úroveň abstrakce přiměřená velikosti problému?
  • ☐ Mohl by to junior vývojář pochopit za 5 minut?
  • ☐ Nejsou tam zbytečné design patterns?
  • ☐ Je kód smazatelný? (Dobrý kód se snadno odstraní, špatný kód má závislosti všude)

„AI generuje kód, který vypadá jako od seniorního vývojáře. Ale senior vývojář by nikdy nenapsal factory pro jeden produkt nebo abstract třídu s jedním potomkem."

— Praktická zkušenost z production codebase

Workflow: Jak integrovat review do AI-first vývoje

Nejlepší praxe, kterou jsem viděl fungovat:

Krok 1: Napište test descriptions (ne implementaci testů) před generováním kódu. „It should return 403 when user lacks admin role." „It should handle empty cart gracefully." Tohle dává AI kontext a vám měřítko.

Krok 2: Nechte AI vygenerovat implementaci. Pak nechte AI vygenerovat testy — ale porovnejte je s vašimi descriptions z kroku 1. Pokud se liší, testy jsou pravděpodobně tautologické.

Krok 3: Projděte checklist výše. Zaměřte se na security a business logiku — tam jsou největší rizika. Formátování a naming řeší linter.

Krok 4: Používejte AI code review nástroje jako druhý pár očí — ale nikdy jako náhradu lidského review. AI review tool najde pattern-based problémy (SQL injection, XSS). Lidský reviewer najde „tohle business pravidlo je špatně."

💡 Praktický tip

Nechte AI vygenerovat kód. Pak zadejte jinému AI modelu, aby ho zreviewoval. Claude najde chyby v kódu od ChatGPT a naopak. Modely mají různé slepé skvrny. Cross-model review není dokonalé — ale je lepší než single-model self-review, který je téměř vždy příliš mírný.

💡 Klíčový takeaway

AI kód nepotřebuje méně review — potřebuje jiný review. Nehledejte syntaktické chyby (to AI zvládá). Hledejte chybějící kontext: business pravidla, edge cases, bezpečnostní díry a zbytečnou komplexitu. Napište test descriptions před kódem. A nikdy nedůvěřujte AI testu na AI kód — to je jako kontrolovat domácí úkol sám sobě.

📚 Zdroje

  • Veracode: 2025 GenAI Code Security Report — 100+ LLMs, 4 languages
  • Georgia Tech: Vibe Security Radar — CVE tracking for AI-generated code, 2025–2026
  • Georgetown CSET: 86% AI code failed XSS defense
  • Getautonoma.com: 53% of AI code has security holes — analysis of 5,600 vibe-coded apps
  • The Register: AI-authored code needs more attention, contains worse bugs, prosinec 2025
  • Clacky.ai: Code Review Checklist for AI-Generated Code