
Code review, který dokáže každý nález — benchmark
Požádejte AI o review PR a dostanete úhledný checklist: injection zkontrolována, secrets zkontrolovány, auth zkontrolována, vypadá to dobře. Zní to jako pečlivost. Jestli něco skutečně našla, je samostatná otázka — a checklist je přesně to, co takový přehlédnutý nález schová. Provozujeme katalog, který testuje Claude skilly na reálných datech, a když jsme vlastním benchmarkem prohnali review skill, kterému jsme už dřív dali známku prošel, přešel kolem natvrdo zapsaného hesla, které nepohlídaná baseline odhalila. Na tom místě checklist neměl žádnou položku, takže se tam reviewer vůbec nepodíval.
Kvůli téhle chybě vznikl review-discipline — a vznikl už ve své druhé verzi. Je zdarma pod licencí MIT: github.com/Skillproofdev/review-discipline. Každý nález, který nahlásí, musí pojmenovat konkrétní vstup, který se dostane ke kódu a způsobí špatný výsledek — jinak jde ven se sníženou váhou jako [suspicion], nikdy jako tvrzený fakt. Na našem benchmarku se zaseknutými chybami zachytí 18,5 z 21 nastražených chyb s nulou falešných poplachů a doloženou cestou k selhání u ~100 % nálezů.
Propast: každý review skill je checklist, a checklisty vedou k tunelovému vidění
Než jsme napsali řádek kódu, prošli jsme 321 zaindexovaných review skillů plus samostatné nástroje na trhu — včetně vlastního code-review pluginu od Anthropicu. Tři mechanismy se v žádném z nich neobjevily jako vymahatelné pravidlo pro jednoho agenta. Všechny tři vedou ke stejné chybě, kterou jsme sledovali v našem benchmarku.
Checklist reviewerovi řekne, co má hledat. Tím pádem taky řekne, co má přehlédnout. Když kategorie danou chybu nepokrývá, chyba přežije — a review navíc vyjde zeleně, protože každé zaškrtávací políčko, které existuje, bylo zaškrtnuto. Review selhává dvěma způsoby: hlásí nedoložené dohady jako fakt (šum), nebo potichu přeskočí reálnou chybu, protože je malá nebo protože pozornost pohltila jiná, děsivější (chybějící pokrytí). Checklist je strukturálně dobrý v produkci obojího.
Anthropicův plugin bojuje proti šumu paralelními hodnotícími agenty, kteří hlasují o míře jistoty. To je reálný mechanismus, ale potřebuje víc agentů a pokrytí vůbec neřeší. Nikdo nenabízí to, co checklist obrátí naruby: nejdřív prohledat všechno bez jakéhokoli seznamu kategorií, teprve pak každý nález dokázat nebo označit, a zahodit jen to, co se dá skutečně vyvrátit — v jednom agentovi, v jednom instalovatelném souboru.
Osm pravidel, tři z nich nikdo jiný nevymáhá
Skill je sada vymahatelných pravidel (celý SKILL.md). Známé části tam jsou: závažnost P0–P3 s reálnými definicemi místo pocitů, disciplína v rozsahu diffu (review změny, ne celé codebase), upozornění na chybějící testy vázaná na změněné chování a nulová chvála navíc. Části, které nikdo jiný nevymáhá:
- Bez doložené cesty k selhání žádný nález. Každý nález musí pojmenovat konkrétní vstup nebo stav, který se dostane k označenému kódu a způsobí špatný výsledek. Nejde ho sestavit? Jde ven jako
[suspicion], zařazený pod každý dokázaný nález — nikdy jako fakt. Nedoložené tvrzení podané jako chyba je jediný zakázaný výstup skillu. - Dva průchody, nejdřív otevřený lov. Přečíst změnu jako útočník bez seznamu kategorií v ruce a zapsat každou anomálii — bez spodní hranice závažnosti, i něco, co jen mírně nesedí, se zapíše. Teprve pak projít standardní checklist (secrets, injection, hranice, aritmetika, souběžnost…) a najít, co otevřený lov přehlédl. Konkurence je checklist; tady běží schválně až druhý.
- Vlastní nález si nejdřív zkuste vyvrátit. Jeden poctivý pokus o vyvrácení na nález — nadřazené ochrany, záměrné chování, existující pokrytí testy, dosažitelnost — a report napíše, co bylo prověřeno. Vyvrácení je jediná brána, která smí nález zahodit; „nechtělo se mi to dokazovat" se stává
[suspicion], ne tichým zahozením. Nálezy, které opravdu padnou, padnou potichu.
Nosné pravidlo je pořadí: šířka před hloubkou. Posbírat každou anomálii bez spodní hranice závažnosti dřív, než ověříte jedinou z nich, takže hluboký ponor do jedné chyby nikdy neuřízne lov na zbytek. Zní to samozřejmě. Je to taky přesně to pravidlo, které naše první verze neměla — a proto prohrála.
Poctivý benchmark (včetně negativních výsledků)
Protokol se zaseté chybami: reálné ukázky kódu (~200–400 řádků, TypeScript / Python / JS) s nastraženými chybami známé závažnosti — logika, bezpečnost, edge case, souběžnost — a ground truth zapsaná před jakýmkoli během. Reálný, funkční kód zůstává v každé ukázce, aby šlo měřit falešné poplachy. Stejné promty, stejný model; jedinou proměnnou je, jestli agent nejdřív čte SKILL.md. Celá metodika: skillproof.dev/methodology.
4 ukázky, 21 nastražených chyb, 12 záměrně zdravých pastí na falešné poplachy. Zajímavý sloupec není base-vs-skill — je to v1 vs v2, protože právě náš vlastní benchmark si vynutil přestavbu.
| Metrika | Base (bez skillu) | Skill v1 | Skill v2 |
|---|---|---|---|
| Nastražené chyby zachyceny (z 21) | 17,0 (81 %) | 16,5 (79 %) | 18,5 (88 %) |
| P0 zachyceno (zneužitelné / ztráta dat) | 3/3 | 3/3 | 3/3 |
| P1 zachyceno (špatné chování, reálná cesta) | 7/7 | 7/7 | 7/7 |
| P2 zachyceno (edge / aritmetické cesty) | 6/7 | 4/7 | 7/7 |
| Sonda na natvrdo zapsané heslo | zachyceno | zachyceno | zachyceno |
| Míra falešných poplachů | 5,6 % (1 FP) | 0 % | 0 % |
| Nálezy s doloženou cestou k selhání | ~63 % | ~100 % | ~100 % |
Snížení na [suspicion] (poctivé zaváhání) |
0 | 3 | 5 |
| Řádky s chválou / výplní | ano | žádné | žádné |
Přečtěte si prostřední sloupec a uvidíte selhání, po kterém dostal skill jméno. v1 měla skóre 16,5 — pod nepohlídanou baseline s 17. Měla disciplínu cesty k selhání (snížila falešné poplachy na nulu, doložila ~100 % svých nálezů), ale byla horší v hledání chyb, protože se v jedné ukázce upnula na děsivá P0 a nikdy neprošla tiché řádky se zaokrouhlováním peněz. Tunelovala. Odhalil to náš veřejný benchmark skillu, kterému jsme dali prošel: v1 přehlédla dvě reálné P2 chyby — logickou chybu v prorate /30 a zaokrouhlení v int(amount × 100) — které baseline zachytila jen tím, že četla lineárně.
Oprava byla pravidlo šířka-před-hloubkou. v2 posbírá každou anomálii bez spodní hranice závažnosti, než jedinou z nich ověří. Výsledek: P2 vyskočilo ze 4/7 na čistých 7/7 (dokonce obnovila StopIteration u prázdného CSV, kterou přehlédla jak base, tak v1), celkový recall vylezl na 18,5 — nad base's 17 — a disciplína zůstala: pořád nula falešných poplachů, pořád ~100 % doložených cest, a víc poctivých hedgů [suspicion] (5 místo 3), ne méně. Celé trojcestné posouzení je v bench/results/verdict.md.
Jeden mýtus benchmark taky rovnou pohřbil: hypotéza o tunelovém vidění checklistů na secrets, která celý projekt nastartovala, se v nastraženém běhu nepotvrdila — všechny tři větve zachytily sondu s natvrdo zapsaným heslem (S4-B1). Původní přehlédnutí bylo reálné a naučilo nás tvar problému; nastražený benchmark jen ukázal, že samotné heslo není místo, kde se šířka vyplatí. Vyplatí se u edge case se zaokrouhlováním peněz. Reportujeme mechanismus, který čísla skutečně posunul, ne ten, co by dal lepší vznikající příběh.
Kde v2 prohrála — a přesto to zveřejňujeme
Naše metodika vyžaduje ztráty vedle výher. v2 je nejlepší varianta ve všem, co blokuje merge, ale není čistou nadmnožinou v1 a nebudeme to předstírat.
Při honbě za vyčerpávající šířkou v2 přestala vrtat do jedné funkce (_parse_tags) a přešla kolem jemného podezření na hluboké vnořování v literal_eval (S2-B5), které jedinečně zachytil hloubkový průchod v1. Na ose P3 / mimo checklist tedy v2 dokonce ustoupila — z 2,5/4 u v1 na 1,5/4. V součtu je to dobrý obchod (+2 středně závažné za −1 jemnou P3), ale je to reálný ústup na téhle jedné ose, ne čistá dominance. Ideální reviewer by byl šířka v2 plus ochota v1 vrtat ještě o úroveň hlouběji do tiše vyhlížejícího kódu — a radši vám to řekneme, než abychom to zaokrouhlili.
Existuje i chyba, kterou nezachytila žádná varianta: přísná nerovnost < u vypršení kupónu (S1-B6), přehlédnutá base i v1 i v2. Skill snižuje počet přehlédnutí; nedělá z Clauda neomylného reviewera.
SKILLPROOF SKILL
review-discipline je zdarma, MIT, a celý je to jeden soubor. Přečtěte si osm pravidel, harness s nastraženými chybami a celé trojcestné posouzení — pak to spusťte na vlastních diffech.
Získat review-discipline na GitHubuInstalace
git clone https://github.com/Skillproofdev/review-discipline ~/.claude/skills/review-discipline
Restartujte Claude Code. Jeden příkaz — repo je skill. Spouští se na „zkontroluj tenhle PR/diff", „over to před mergem", „najdi chyby v" a kontroly před mergem — a nezasahuje do psaní featur, čistě stylového lintování a recenze prózy. Patří do naší disciplinární série: token-discipline snižuje, co agent stojí, research-discipline snižuje, co si o faktech splete, a tenhle snižuje, co review přehlédne.
FREE STARTER PACK
Chcete naše nejlépe hodnocené skilly plus instalační checklist, který používáme před každým testem? Pošleme vám ho e-mailem zdarma.
Získat free starter packFAQ
Čím se to liší od code-review pluginu od Anthropicu? Plugin filtruje falešné poplachy tím, že paralelní hodnotící agenti hlasují o míře jistoty — funguje to, ale potřebuje víc agentů a řeší jen problém šumu. review-discipline filtruje přes doloženou cestu k selhání v jediném agentovi, v jednom instalovatelném souboru, a navíc řeší problém pokrytí, kterého se plugin netýká: pravidlo otevřeného lovu před checklistem, které zvedlo náš P2 recall ze 4/7 na 7/7.
Nepřijde tím, že „dokažte každý nález", o věci, které nejde doložit?
Ne — od toho je mechanismus [suspicion]. Reálná chyba, ke které nejde sestavit cestu k selhání (potřebuje stav za běhu, který nevidíte, nebo externí systém), se pořád nahlásí, označí se [suspicion] a zařadí pod potvrzené nálezy, s jedním řádkem o tom, co chybí. Snížení jistoty je nástroj; zahození ne. V benchmarku vydala v2 5 takových poctivých hedgů, místo aby je spolkla.
Kontroluje celou codebase, nebo jen váš diff? Jen změnu. Nálezy musí být způsobené nebo aktivované tímhle diffem; existující problémy jdou do krátké poznámky mimo rozsah, ne do žebříčku nálezů. Jedinou výjimkou je existující P0 — živé heslo nebo aktivní zranitelnost — které se hlásí vždy a výrazně. Tahle výjimka existuje přesně kvůli přehlédnutí z úvodního příběhu.
Stačí 18,5/21 na to, abyste přeskočili lidský review? Ne. Zachytí každé P0 a P1, které blokuje merge, v našem benchmarku, a překonává nepohlídanou baseline na celkovém recallu s nulou falešných poplachů — což z něj dělá silného prvního reviewera, který nikdy jen neodklepne a vždycky pojmenuje, co prověřil. Ale jednu nastraženou chybu úplně přehlédl a vyměnil jemnou P3 za šířku, obojí zdokumentované výše. Použijte ho, aby zjevné a tiché aritmetické chyby nedošly k člověku; člověka si nechte na poslední úroveň hloubky.
★ 9.6/10 × 3
Startovací balíček zdarma
3 skills s nejvyšším skóre z našich testů plus instalační checklist — sestava, kterou bychom nasadili na čistý stroj. Zdarma, e-mailem.