--- name: pre-release-gate description: > Release-Freigabe vor einem Deploy: führt die Baseline-Prüfungen aus, wertet die ASVS-light- Checkliste aus und liefert ein Urteil Go / Go mit Auflagen / No-Go. TRIGGER WENN der User sagt: "deployen", "Release", "live stellen", "ist das bereit", "Go/No-Go", "Release-Check", "/pre-release-gate", oder bevor ein Agent einen Deploy anstößt. Ergebnis: Urteil mit Begründung und den drei wichtigsten Befunden. --- # pre-release-gate Ein Deploy ohne dieses Gate ist nicht freigegeben. Das Gate deployt **nicht** selbst; der Deploy braucht danach die ausdrückliche Freigabe des Users. ## Ablauf (im App-Repo) 1. Stand festhalten: Branch, Commit, Unterschied zum letzten Release (`git log --oneline ..HEAD`). 2. Prüfungen ausführen und jedes Ergebnis notieren (grün / rot / **nicht ausgeführt** + Grund): ```bash make check # Secrets, Lint, Tests, SAST, Dependency-Audit make mutation # falls security-mutations.toml existiert make container IMAGE= # falls Container-Deploy ``` Nach dem Deploy auf Staging/Testinstanz zusätzlich `make zap TARGET=` und `make fuzz TARGET=` (nur gegen eigene Instanzen). 3. Checkliste `security-review/references/asvs-light.md` durchgehen: jeder **K**-Punkt braucht einen Beleg (Test, Scan, Konfiguration). Kein Beleg = offen. 4. Deploy-Konfiguration prüfen: App-Port nicht am Proxy vorbei erreichbar (Compose `ports:`), Debug aus, Secrets aus Secret-Store/Env, Backups vor Migrationen. 5. Lag seit dem letzten Review ein größerer KI-Diff an Auth/Rollen? → `security-review` im frischen Kontext, falls noch nicht geschehen. ## Urteil - **No-Go**, wenn eins zutrifft: ein K-Punkt offen, Secrets gefunden, Tests rot, High/Critical in Dependencies oder Image ohne dokumentierte Ausnahme, Mutation überlebt. - **Go mit Auflagen**: nur H-/M-Punkte offen, jeder mit Entscheidung (fixen/akzeptieren) und Termin. Auflagen als Issues im Repo der App vorschlagen. - **Go**: alles grün **und** jeder Schritt tatsächlich ausgeführt. Ein „nicht ausgeführt“ bei einer Pflichtprüfung macht aus Go höchstens „Go mit Auflagen“. ## Ausgabe ``` Urteil: No-Go | Go mit Auflagen | Go Stand: @ Prüfungen: make check ✅ | mutation ✅ 10/10 | container ⏭ nicht ausgeführt (kein Image) | ... Top-3-Befunde: 1. [K] ... (Datei:Zeile, Beleg) 2. ... Auflagen / nächste Schritte: ... ```