Titulní stránka tvrdí 100% úplnost (recall) a 0 falešných poplachů na halucinovaných názvech balíčků. Zde je celá metodika, dataset a poctivá upozornění — abyste si číslo mohli ověřit, ne mu jen věřit.
Tento benchmark měří jednu úzkou věc: rozezná Graneth správně skutečný název balíčku od AI-halucinovaného, slopsquattingového nebo typosquattingového? Neměří kvalitu statické analýzy (SAST), detekci zranitelností ani žádnou jinou část skenovací pipeline — pouze ověření názvu balíčku proti živým registrům npm a PyPI.
| Výsledek | Počet | Význam |
|---|---|---|
| TP | 65 | Halucinovaný/špatný název, správně označen |
| FN | 0 | Halucinovaný/špatný název, přehlédnut |
| TN | 66 | Skutečný balíček, správně propuštěn |
| FP | 0 | Skutečný balíček, chybně označen |
| Neověřeno | 4 | Skutečný balíček — dotaz na registr byl během běhu přechodně nedostupný, poctivě nahlášeno jako třetí stav |
| Počet | Kategorie | Zdroj |
|---|---|---|
| 35 | Známá výzkumná sada AI halucinací | Lanyado et al., USENIX Security 2024/25; advizorie CSA |
| 2 | Zveřejněné reálné halucinace, mimo výzkumnou sadu | PoC „huggingface-cli“ od Lasso Security; případ „react-codeshift“ od Socket.dev |
| 3 | Historické případy zabavených typosquattingových balíčků | crossenv, python3-dateutil, jeIlyfish — reporty Snyk / Check Point |
| 25 | Názvy vymyšlené hodnotitelem — test generalizace | Napodobují vzor „populární knihovna + obecná přípona“; každý ověřen jako 404 před zařazením; detektor je nikdy předtím neviděl — všech 25 zachyceno |
| 66 | Skutečné, populární balíčky — pravdivě negativní | Živé registry npm / PyPI |
| 4 | Skutečné hraniční případy, 1 úprava od známého jména | např. jsdoc vs. jsdom |
Tato čísla pocházejí ze spuštění skutečného produkčního detektoru Graneth — přesně té cesty kódu, kterou používá živý sken — proti tomuto označenému vzorku, ověřenému proti živým registrům npm a PyPI. Nic zde není mock ani syntetická náhrada detektoru.
Vzorek kombinuje známá výzkumná data o AI halucinacích, dva nezávisle zveřejněné případy reálných halucinací, tři historické případy zabavených typosquattingových balíčků a 25 názvů, které hodnotitel vymyslel speciálně pro test generalizace: názvy napodobující stejný vzor „populární knihovna + obecná přípona“, jaký halucinují AI agenti, každý potvrzen jako 404 na příslušném registru před zařazením, takže žádný nebyl náhodou skutečný.
Výsledek: všech 65 halucinovaných nebo špatných názvů bylo označeno (100% úplnost, 0 falešně negativních) — včetně všech 25 názvů, které detektor nikdy předtím neviděl, což je signál generalizace, který je důležitější než titulní číslo — a žádný ze 70 skutečných balíčků, včetně 4 skutečných hraničních případů, nebyl chybně označen (0% míra falešných poplachů).
Úzké tvrzení. Toto měří detekci AI-halucinovaných, slopsquattingových a typosquattingových názvů balíčků — zda závislost existuje, nebo je téměř shodná se skutečnou. Neříká nic o kvalitě SAST, detekci zranitelností ani jiné části skenovací pipeline Graneth.
Vzorek, ne vyčerpávající test. 135 označených balíčků je vzorek, ne vyčerpávající benchmark. 100% výsledek na tomto vzorku není zárukou proti každému halucinovanému názvu, který se kdy může objevit.
„Neověřeno“ je skutečný třetí stav. Při tomto běhu vrátily 4 skutečné hraniční balíčky stav „adopce neověřena“, protože endpoint registru pro stahování byl přechodně nedostupný — poctivě nahlášeno jako neověřeno, nikdy tiše započítáno jako falešný poplach nebo falešný průchod. Počet, který se vrátí jako neověřený, se běh od běhu liší podle přechodných síťových podmínek — není to pevná vlastnost detektoru.
Dnes nezávisle nereprodukovatelné. Testovací harness a dataset benchmarku žijí v soukromém repozitáři, takže se nejedná o otevřený benchmark, který si sami spustíte. Místo toho zveřejňujeme celou metodiku, přesná čísla a níže složení datasetu i zdroje, aby byl výsledek posouditelný, i když harness není veřejný.
Žádné záruky. „100% úplnost“ popisuje tento měřený vzorek k tomuto datu — ne slib, že Graneth zachytí každý halucinovaný název balíčku, v každém případě, navždy.