--- name: dependency-vetting description: > Neue Pakete (PyPI, npm) vor dem Einbau prüfen: existiert das Paket wirklich, ist es frisch angelegt, ein Typosquat, ungepflegt oder kaum genutzt. TRIGGER WENN eine neue Dependency hinzukommen soll (pip install, npm install, Eintrag in requirements/pyproject/package.json), der User sagt "prüf das Paket", "ist das Paket sicher", "dependency check", "/dependency-vetting", oder ein Diff neue Pakete enthält. Ergebnis: pro Paket ein Urteil OK / WARNUNG / EXISTIERT NICHT mit Gründen. --- # dependency-vetting KI-Agenten erfinden Paketnamen („Slopsquatting“). Angreifer registrieren genau diese Namen. Deshalb wird **jede** neue Dependency vor `install` geprüft. ## Ablauf 1. Paketnamen exakt so sammeln, wie sie installiert würden (`pypi:name`, `npm:name`, npm-Scopes wie `npm:@scope/name`). 2. Prüfskript ausführen. Im App-Repo mit Baseline: ```bash make vet-deps PKGS="pypi:fastapi npm:zod" ``` Ohne Baseline direkt aus diesem Skill: ```bash python3 /scripts/vet_deps.py pypi:fastapi npm:zod ``` Exit-Code: 0 = alles OK, 1 = Warnungen, 2 = mindestens ein Paket existiert nicht. 3. Urteil pro Paket übernehmen und **selbst einordnen**: - **EXISTIERT NICHT** → nie installieren. Vermutlich halluziniert; richtigen Namen suchen. - **WARNUNG** (jünger als 90 Tage, wenige Releases, kaum Downloads, Name ähnelt einem bekannten Paket, kein Repository-Link) → dem User zeigen, Alternative vorschlagen, nur mit ausdrücklichem OK installieren. - **OK** → installieren, danach `make audit` (bekannte Lücken). 4. Braucht man das Paket überhaupt? Für 20 Zeilen Code keine neue Abhängigkeit. ## Grenzen Das Skript prüft Metadaten, keinen Code. Ein gekapertes, populäres Paket fällt nicht auf; dafür sind `make audit` und gepinnte Lockfiles da. Ohne Netzzugang meldet das Skript „nicht prüfbar“ – das ist kein OK.