Přejít na obsah
online
csv0.46.1 · 1d135e2

Jak vydáváme produkty s AI kontrolou u každého pull requestu

Mainlane tvoří jeden inženýr a tým AI agentů. To vyvolává oprávněnou otázku: kdo kontroluje kód, který napsala AI? Naše odpověď: jiná AI, která ho nepsala, a po ní člověk, který rozhodne, zda změna půjde do provozu.

Ilustrace: diff kódu s přidanými a odebranými řádky, tři komentáře z review označené červeně, žlutě a zeleně a člověk, který schvaluje zatržítkem.

Mainlane tvoří jeden inženýr a tým AI agentů. To vyvolává oprávněnou otázku: kdo kontroluje kód, který napsala AI? Naše odpověď je jiná AI — taková, která ho nepsala — a po ní člověk, který rozhodne, zda změna půjde do provozu.

Smyčka

  1. Relace Claude převezme úkol a otevře pull request.
  2. Samostatný recenzent začíná v čisté relaci. Nikdy neviděl, jak kód vznikal, takže čte diff tak, jak by ho četl kolega — bez předpokladů autora.
  3. Recenzent zanechá připomínky ve třech úrovních: 🔴 nutno opravit, 🟡 vhodné opravit, 🟢 bylo by fajn.
  4. Relace autora je opraví a odpoví bod po bodu; na konci je sekce „Ověření“: příkazy, které spustila, a co vypsaly.
  5. Recenzent zkontroluje nový head. Smyčka se opakuje, dokud nezůstane žádná připomínka — ani 🟢.

Poctivost hlídají dvě pravidla. Připomínku lze zpochybnit jen měřením — číslem, výstupem příkazu, mutantem, kterého test nezachytí — a ne slovy „je to v pořádku“. A po pěti kolech se smyčka zastaví a zeptá se člověka, takže se nikdy netočí donekonečna.

Role člověka

Žádný agent nemerguje. Když je review čisté a CI zelené přesně na tom commitu, který recenzent viděl, relace napíše „připraveno k merge“ a čeká. K merge dojde, až když to schválí člověk, a jen pro tentýž commit.

Co zachytí

Několik skutečných příkladů z repozitáře tohoto webu:

  • V pull requestu, který do CI přidal kontroly Lighthouse, si recenzent všiml, že nastavení sestavení CSS ukazovalo do špatné složky, takže styly rozvržení potichu mizely z webu. Neupozornil na to ani Lighthouse, ani nástroj pro kontrolu přístupnosti. Zachytil také pevně umístěný jazykový banner, který mohl uživatelům klávesnice zakrýt prvek s fokusem.
  • V kontrole obnovy zálohy databáze denní test porovnával obnovená data sama se sebou místo s exportem — chybějících řádků by si nikdy nevšiml. Totéž review našlo chybovou hlášku, která mohla vypsat e-mail leadu do logů.
  • Při zavádění Content Security Policy by hlášení z rozšíření prohlížeče zabránila tomu, aby se cíl „týden bez porušení“ vůbec splnil, a externí obrázky v příspěvcích na blogu by se po vynucení politiky rozbily.

Nic z toho nebylo exotické. Byly to věci, které unavený člověk v pátek večer přehlédne.

V číslech

Na konci října 2026 běží smyčka v osmi repozitářích: 385 sloučených pull requestů a 1 069 review. Většinu nákladů tvoří samotná práce: v posledním říjnovém týdnu jdou zhruba tři čtvrtiny tokenů na implementaci a méně než desetina na review.

Omezení

Recenzent je stejný typ modelu jako autor, takže může mít stejná slepá místa. Nenahrazuje lidské review důležitých změn a text uvnitř pull requestu bere jako data, nikdy jako pokyny. Nahrazuje ale krok, který většina vývojářů pracujících o samotě vynechává: druhý pár očí u každé jednotlivé změny.

Pokud chcete stejný proces ve svém týmu, je to jedna z našich služeb — ozvěte se nám.