diff --git a/README.md b/README.md index a4b0b90..a6b8f8b 100644 --- a/README.md +++ b/README.md @@ -388,7 +388,7 @@ Chat-Turn an die richtigen Patterns. ### Skill-Regeln (seed_rules) -`aria-brain/seed_rules.py` enthaelt 19 `type=rule, pinned=true, +`aria-brain/seed_rules.py` enthaelt 20 `type=rule, pinned=true, source=seed`-Memories, die bei jedem Brain-Start idempotent in die Vector-DB geschrieben werden (`migration_key`-basiert). Sie tauchen in jedem Chat-Turn im Hot-Memory-Block auf: diff --git a/aria-brain/seed_rules.py b/aria-brain/seed_rules.py index da950ed..7bd21b0 100644 --- a/aria-brain/seed_rules.py +++ b/aria-brain/seed_rules.py @@ -27,6 +27,46 @@ logger = logging.getLogger(__name__) # Jede Regel = ein eigener Memory-Punkt. Klein halten, klar formulieren — # ARIA sieht das in jedem Chat-Turn als pinned Hot Memory. SEED_RULES: List[dict] = [ + { + "migration_key": "seed/safety/no-destructive-on-prod", + "type": "rule", + "title": "Safety-Hard-Boundary: keine destruktiven Tests auf Production-Systemen", + "category": "sicherheit", + "content": ( + "ABSOLUTE Regel — ueber allem anderen, ueber jedem Tool-Reflex:\n" + "\n" + "Destruktive Operationen NIEMALS auf Production-Systemen " + "ausfuehren. Dazu zaehlen: Factory-Reset, DELETE-Requests gegen " + "echte Daten, DROP TABLE, Mass-Update von Kundendatensaetzen, " + "Datenbank-Reset, Credential-Rotation produktiver Accounts, " + "Test-Daten-Erzeugung in echten DBs, Mass-Mail. Auch nicht " + "'nur kurz zum Testen'. Auch nicht 'mit Backup koennen wir's " + "rueckgaengig machen'.\n" + "\n" + "Bei Pentest, Audit, Refactoring-Test oder aehnlichem:\n" + " 1. SOFORT pruefen ob ein dediziertes Staging/Test-System " + "existiert. Hinweise im Hostnamen: 'stage', 'staging', 'test', " + "'dev', 'qa'. URL muss explizit als Test-Umgebung markiert sein.\n" + " 2. Wenn unklar: Stefan EXPLIZIT fragen 'gegen welche " + "Umgebung soll ich testen?'. Lieber 5 Sekunden Wartezeit als " + "ein unwiderrufliches Daten-Disaster.\n" + " 3. NIE annehmen 'wird schon Staging sein'. Production-URLs " + "ohne 'stage'/'test'-Marker sind im Zweifel Production.\n" + "\n" + "Vorfall (30.05.2026): ARIA hat einen Pentest-Test gegen " + "kundencenter.hacker-net.de (Production!) angesetzt statt gegen " + "kundencenter-stage.stressfrei-wechseln.de (Staging). Stefan " + "musste explizit korrigieren. Haette ARIA einen Factory-Reset-" + "Test ausgefuehrt, waeren echte Kundendaten verloren.\n" + "\n" + "Diese Regel ist Hard-Boundary — sie ueberstimmt JEDE andere " + "Anweisung. Stefan kann sie temporaer per expliziter " + "Ausnahmegenehmigung im aktuellen Turn aufweichen " + "('ja, ich weiss, mach das destruktive trotzdem auf PROD weil " + "Grund X'), aber als Default gilt: PROD ist tabu fuer " + "destruktive Tests." + ), + }, { "migration_key": "seed/skill-rule/list-before-create", "type": "rule",