leistungsbilanz-ts/.claude/skills/dependency-vetting/SKILL.md
Grovy311 67476ea59b Add agent security skills for Codex and Claude Code
Same skills in .agents/skills (Codex) and .claude/skills (Claude Code):
codeguard, security-review, dependency-vetting, pre-release-gate,
authz-idor-audit, threat-model-light. Source: cj/claude-skills.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 09:40:33 +02:00

42 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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 <skill-ordner>/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.