SKILLVERDICT
DE

Methodik · Korpus v1

Jede Zahl auf dieser Website lässt sich mit drei Befehlen reproduzieren

Korpus-Manifest, Runner-Skripte und aggregierte Ergebnisse sind öffentlich. Die Rohausgabe der Engines je Skill wird lokal neu erzeugt statt weitergegeben, weil sie fremden Code zitiert.

Korpus186 Einträge

Wie die Skills ausgewählt wurden

Suche. GitHub-Codesuche nach filename:SKILL.md, kombiniert mit sprachspezifischen Formulierungen (Russisch: навык, используй, когда пользователь; Deutsch: verwende, wenn der Benutzer, Anleitung; Chinesisch: 技能, 使用, 当用户; Englisch: Use this skill when, Instructions, Workflow). Kandidatendateien werden roh geladen; vor der Messung des Skriptanteils werden Codeblöcke entfernt, und die Sprache wird aus dem verbleibenden Text bestimmt (Kyrillisch ≥ 50 % → Russisch; CJK ≥ 30 % → Chinesisch; Lateinisch ≥ 80 % → Deutsch, wenn die Dichte deutscher Funktionswörter über 4 % liegt und Umlaute vorkommen, sonst Englisch).

Zulassung. Frontmatter mit name und description; kein Fork; mindestens 400 Bytes; erkannte Sprache liegt in der Zielmenge.

Auswahl. Höchstens drei Skills pro Repository, reihum über die Besitzer, damit kein produktiver Autor dominiert; lizenzierte Skills bevorzugt, dann größere. Jeder Eintrag ist per git ls-remote auf den HEAD des Repositories zum Auswahlzeitpunkt festgeschrieben.

Speicherung. Skills unter einer permissiven oder Copyleft-SPDX-Lizenz werden als Kopie gespeichert; alle anderen als Zeiger (URL + SHA) und zur Laufzeit geladen. Das Manifest hält Quell-URL, Commit, Lizenz, Sprachanteile, das Vorhandensein von Codeblöcken und die Suchanfragen fest, die den Skill gefunden haben.

Angriffsmuster. Zehn Muster × vier Sprachen, aus je einer Vorlage pro Sprache erzeugt, sodass sich nur die Sprache unterscheidet. Jedes Muster ist entschärft — Platzhalter-Hosts, wirkungslose Befehle, ein Hinweis nach dem Frontmatter — und liegt unter benchmark/corpus/malicious/synthetic/. Sie werden nie ausgeführt; nichts im Korpus wird ausgeführt.

Korpus v1enrudezhgesamt
legitim39383039146
synthetische Angriffsmuster1010101040
Enginesfestgeschrieben

Wie die Engines ausgeführt wurden

# NVIDIA/skillspector @ 6d0b7c8 (v2.12.0)
skillspector scan <dir> --no-llm --format json
# cisco-ai-skill-scanner==2.3.2 (PyPI)
skill-scanner scan <dir> --format json --policy balanced
skill-scanner scan <dir> --format json --policy quiet
# unser Kontrollprüfer
python3 -I scripts/check_hidden_chars.py <dir>

Jedes Paket wird isoliert mit einem Timeout von 900 Sekunden gescannt. Einträge ohne auswertbaren Bericht werden aus jeder Quote ausgeschlossen und unter „Laufzeitfehler“ mit ihrer Größe aufgeführt. Engine-Versionen, Timeouts und die Historie von Teilläufen stehen neben den Ergebnissen in results/raw/<engine>/_run.json.

Metriken

  • FP auf Urteilsebene — Anteil legitimer Skills, die die Engine selbst nicht als SAFE eingestuft hat (SkillSpector risk_assessment.recommendation; Cisco is_safe). FN auf Urteilsebene — Anteil der Angriffsmuster, die sie als SAFE eingestuft hat.
  • FP auf Befundebene ab MEDIUM und ab HIGH — Anteil legitimer Skills mit mindestens einem Befund dieser Schwere.
  • FP nur Text — dasselbe, aber nur Befunde, die in einer .md-Datei liegen. Das trennt die Sprache der Anweisungen von der Menge des mitgelieferten Codes.
  • Matrix Muster × Sprache — höchste gemeldete Schwere je Angriffsmuster und Sprache.
  • Score und Codemenge — SkillSpector-Score nach Zahl der Code-Dateien (.py .js .ts .sh .mjs .cjs .rb .go .ps1), mit Spearman-Rangkorrelation.
Verwandte Arbeiten

Wer sonst die Scanner misst

Wir sind nicht die Ersten, die fragen, ob man Skill-Scannern trauen kann, und die bisherigen Antworten zeigen in dieselbe Richtung. Was dieser Scorecard hinzufügt, ist der Sprachschnitt — derselbe Angriff in vier Sprachen, dieselben Regeln je Sprache gezählt — und die Beobachtung, dass ein statischer Score der Codemenge eines Pakets folgt.

  • SkillTrustBench (CUHK-Shenzhen und Tencent Zhuque Lab, Juni 2026) — 5 520 Testfälle aus 62 652 Marktplatz-Skills, neun Bedrohungskategorien, ein öffentliches Leaderboard. Testet dieselben Engines wie wir (Cisco Skill Scanner, NVIDIA SkillSpector) plus Skill Vetter und vergleicht das LLM hinter dem Scanner. Dreißigmal unser Korpus; keine Analyse je Sprache.
  • MalSkillBench (Guo et al., Juni 2026) — 3 944 bösartige Skills, zur Laufzeit in einer Sandbox verifiziert, 4 000 passende gutartige, Datensatz und Baselines veröffentlicht. Sein Schluss deckt sich mit unserem: Detektoren, die Code lesen, verpassen Angriffe, die in Anweisungen stecken, und die beiden Hälften werden nie zusammen betrachtet.
  • AI Agent Skill Scanners: Bypassed Across the Board (Research Note der Cloud Security Alliance zur Arbeit von Trail of Bits, Juni 2026) — jeder getestete Scanner wurde binnen einer Stunde umgangen; die Fortsetzung SkillCloak (Juli 2026) zeigt speziell die Umgehung von Marktplatz-Scannern.
  • OWASP Agentic Skills Top 10 — AST08 „Poor Scanning“ — benennt das Risiko, das dieser Scorecard misst.
  • OASB Skills Security Benchmark (OpenA2A) — Precision/Recall-Tabellen für die eigenen Pipelines dieses Anbieters. Der Vollständigkeit halber aufgeführt; ein Benchmark, den der Hersteller der von ihm gerankten Scanner betreibt, beantwortet eine andere Frage als diese.

Wer einen Benchmark von Skill-Scannern betreibt, der hier fehlt, schreibt an andrey@skillverdict.dev.

Reproduzieren

Code und Daten öffnen am 12. November 2026

Das Repository AndreyVomKeg/skillverdict-benchmark — Korpus-Manifest, Angriffsmuster, Runner-Skripte, Lauflogs und der aggregierte Scorecard — wird an diesem Tag zusammen mit den Antworten der Engine-Maintainer veröffentlicht; das siebentägige Offenlegungsfenster läuft. Die Befehle stehen schon jetzt hier, damit das Verfahren gelesen werden kann, bevor der Code es ist.

Drei Befehle

git clone https://github.com/AndreyVomKeg/skillverdict-benchmark
cd skillverdict-benchmark
python3 -I scripts/fetch_corpus.py     # festgeschriebene SHAs → corpus/_work/
python3 -I scripts/run_engines.py      # results/raw/<engine>/*.json
python3 -I scripts/report.py           # results/scorecard.md + .json

Führen Sie die Leser mit python3 -I und von außerhalb des Korpus-Verzeichnisses aus: Skill-Inhalte sind per Definition feindliche Eingaben. Installieren Sie zuerst die Engines (pip install git+https://github.com/NVIDIA/skillspector.git@6d0b7c8 cisco-ai-skill-scanner==2.3.2).

Lizenzen

Benchmark-Code: Apache-2.0. Korpus-Manifest, synthetische Muster und aggregierte Ergebnisse: CC BY 4.0 — frei weiterverwendbar, skillverdict.dev als Quelle nennen. Kopierte Skills behalten ihre eigenen Lizenzen, je Eintrag vermerkt.

Offenlegungsregel

Engine-Maintainer erhalten die Befunddatei mindestens sieben Tage, bevor das Repository geöffnet wird (5. November 2026 → 12. November 2026 für Korpus v1). Ihre Antworten werden unverändert veröffentlicht. Befunde zu einzelnen legitimen Skills werden nur aggregiert berichtet; eine Liste „durchgefallener Skills“ veröffentlichen wir nicht. Autoren von Skills im Korpus können die Entfernung erbitten unter andrey@skillverdict.dev; der Eintrag wird zum Zeiger oder in der nächsten Korpusversion gestrichen.

Phase 2

Bescheid bekommen, wenn die Skill-Seiten öffnen

Eine E-Mail, wenn Phase 2 live ist, sonst nichts. Wählen Sie Ihren Mail-Dienst; die Nachricht ist vorgeschrieben, senden Sie sie so ab.

Benachrichtigen, wenn Skill-Seiten öffnen

Oder schreiben Sie an andrey@skillverdict.dev. Wer einen Scanner betreut und die Rohergebnisse vor der Veröffentlichung möchte: dieselbe Adresse.