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>
This commit is contained in:
Grovy311 2026-10-15 09:40:33 +02:00
parent 431f9ff059
commit 67476ea59b
68 changed files with 6600 additions and 0 deletions

View file

@ -0,0 +1,42 @@
---
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.