# =============================================================================
# Breakpilot Use-Case Compliance & Feasibility Policy
# Version: 1.0
# Jurisdiction: EU (DSGVO + AI Act)
# =============================================================================
#
# GRUNDSATZ:
#   - Diese Regeln sind DETERMINISTISCH und laufen OHNE LLM
#   - LLM darf Hard-Blocks NICHT überschreiben
#   - Bei Unsicherheit → Escalation an DSB
#
# SEVERITY LEVELS:
#   INFO  = Hinweis, kein Risiko
#   WARN  = Risiko, aber lösbar
#   BLOCK = Nicht zulässig ohne grundlegende Änderung
#
# =============================================================================

policy:
  name: Breakpilot Use-Case Compliance & Feasibility Policy
  version: "1.0.0"
  jurisdiction: EU
  basis:
    - GDPR
    - AI_Act
    - BDSG
  default_feasibility: YES
  default_risk_score: 0

# =============================================================================
# Schwellenwerte
# =============================================================================

thresholds:
  risk:
    minimal: 0      # 0-19
    low: 20         # 20-39
    medium: 40      # 40-59
    high: 60        # 60-79
    unacceptable: 80 # 80+

  escalation:
    - art9_data
    - minor_data_with_profiling
    - fully_automated_decisions
    - conflicting_evidence

# =============================================================================
# Architektur-Patterns (Lösungsvorschläge)
# =============================================================================

patterns:
  P_RAG_ONLY:
    id: P_RAG_ONLY
    title: "RAG statt Training"
    description: "Retrieval-Augmented Generation ohne Modell-Training"
    benefit: "Daten bleiben in Vektordatenbank, fließen nicht ins Modell"
    effort: low
    risk_reduction: 20

  P_PRE_ANON:
    id: P_PRE_ANON
    title: "Vor-Anonymisierung"
    description: "Irreversible Anonymisierung vor Speicherung/Verarbeitung"
    benefit: "Keine personenbezogenen Daten mehr → DSGVO nicht anwendbar"
    effort: medium
    risk_reduction: 30

  P_PIXELIZATION:
    id: P_PIXELIZATION
    title: "Verpixelung/Unkenntlichmachung"
    description: "Identifizierende Merkmale automatisch unkenntlich machen"
    benefit: "Gesichter, Kennzeichen etc. nicht mehr erkennbar"
    effort: medium
    risk_reduction: 25

  P_HITL_ENFORCED:
    id: P_HITL_ENFORCED
    title: "Human-in-the-Loop erzwingen"
    description: "Technisch erzwungene menschliche Überprüfung"
    benefit: "Keine vollautomatisierten Entscheidungen → Art. 22 nicht anwendbar"
    effort: low
    risk_reduction: 20

  P_RETENTION_CAP:
    id: P_RETENTION_CAP
    title: "Kurze Aufbewahrung"
    description: "Automatische Löschung nach max. 72 Stunden"
    benefit: "Minimiert Risiko durch kurze Speicherdauer"
    effort: low
    risk_reduction: 10

  P_NAMESPACE_ISOLATION:
    id: P_NAMESPACE_ISOLATION
    title: "Mandantentrennung"
    description: "Strikte Trennung der Daten nach Mandanten"
    benefit: "Kein Datenzugriff zwischen Mandanten möglich"
    effort: medium
    risk_reduction: 15

  P_CONSENT_FLOW:
    id: P_CONSENT_FLOW
    title: "Einwilligungs-Workflow"
    description: "Implementierung eines rechtskonformen Einwilligungsprozesses"
    benefit: "Gültige Rechtsgrundlage nach Art. 6(1)(a) / Art. 9(2)(a)"
    effort: medium
    risk_reduction: 20

  P_EU_HOSTING:
    id: P_EU_HOSTING
    title: "EU-Hosting"
    description: "Wechsel zu einem Anbieter mit EU-Rechenzentren"
    benefit: "Kein Drittlandtransfer → Art. 44ff nicht anwendbar"
    effort: medium
    risk_reduction: 15

# =============================================================================
# Erforderliche Kontrollen
# =============================================================================

controls:
  C_EXPLICIT_CONSENT:
    id: C_EXPLICIT_CONSENT
    title: "Ausdrückliche Einwilligung"
    description: "Opt-in mit klarer Information über Verarbeitungszweck"
    gdpr_ref: "Art. 6(1)(a), Art. 9(2)(a) DSGVO"
    effort: medium

  C_PARENTAL_CONSENT:
    id: C_PARENTAL_CONSENT
    title: "Einwilligung der Erziehungsberechtigten"
    description: "Bei Minderjährigen unter 16: Elterneinwilligung erforderlich"
    gdpr_ref: "Art. 8 DSGVO"
    effort: high

  C_DSFA:
    id: C_DSFA
    title: "Datenschutz-Folgenabschätzung"
    description: "Formale DSFA nach Art. 35 DSGVO durchführen"
    gdpr_ref: "Art. 35 DSGVO"
    effort: high

  C_TRANSPARENCY:
    id: C_TRANSPARENCY
    title: "KI-Transparenz-Hinweis"
    description: "Nutzer informieren dass sie mit KI interagieren"
    gdpr_ref: "Art. 13/14 DSGVO, Art. 52 AI Act"
    effort: low

  C_CONTESTATION:
    id: C_CONTESTATION
    title: "Anfechtungsrecht"
    description: "Betroffene können automatisierte Entscheidungen anfechten"
    gdpr_ref: "Art. 22(3) DSGVO"
    effort: medium

  C_ACCESS_LOGGING:
    id: C_ACCESS_LOGGING
    title: "Zugriffs-Protokollierung"
    description: "Alle Datenzugriffe revisionssicher protokollieren"
    gdpr_ref: "Art. 5(2) DSGVO"
    effort: low

  C_ENCRYPTION:
    id: C_ENCRYPTION
    title: "Verschlüsselung"
    description: "Daten bei Übertragung und Speicherung verschlüsseln"
    gdpr_ref: "Art. 32 DSGVO"
    effort: low

  C_RETENTION_POLICY:
    id: C_RETENTION_POLICY
    title: "Löschkonzept"
    description: "Definierte Aufbewahrungsfristen mit automatischer Löschung"
    gdpr_ref: "Art. 5(1)(e) DSGVO"
    effort: medium

  C_SCC:
    id: C_SCC
    title: "Standardvertragsklauseln"
    description: "EU-SCC mit Drittland-Anbieter abschließen"
    gdpr_ref: "Art. 46(2)(c) DSGVO"
    effort: medium

  C_TIA:
    id: C_TIA
    title: "Transfer Impact Assessment"
    description: "Bewertung der Risiken bei Drittlandtransfer"
    gdpr_ref: "Schrems II Urteil"
    effort: high

  C_SCC_NEW:
    id: C_SCC_NEW
    title: "Neue Standardvertragsklauseln (2021)"
    description: "Verwendung der aktuellen SCC-Version seit Juni 2021"
    gdpr_ref: "Art. 46(2)(c) DSGVO, EU 2021/914"
    effort: medium
    when_applicable: "Drittlandtransfer ohne Angemessenheitsbeschluss"
    what_to_do: |
      1. Korrektes SCC-Modul wählen (C2C, C2P, P2P, P2C)
      2. Annex I (Datenexporteur/Importeur) ausfüllen
      3. Annex II (Technische Maßnahmen) dokumentieren
      4. Von beiden Parteien unterzeichnen lassen
    evidence_needed:
      - "Unterzeichnete SCC (PDF)"
      - "Ausgefüllte Annexe I und II"
      - "Dokumentation des gewählten Moduls"

  C_SCC_DPF_CHECK:
    id: C_SCC_DPF_CHECK
    title: "DPF-Zertifizierungsprüfung"
    description: "Prüfung ob US-Anbieter unter Data Privacy Framework zertifiziert ist"
    gdpr_ref: "EU-US Data Privacy Framework Beschluss 2023"
    effort: low
    when_applicable: "Übermittlung an US-Empfänger"
    what_to_do: |
      1. DPF-Liste auf dataprivacyframework.gov prüfen
      2. Zertifizierungsstatus dokumentieren
      3. Bei Zertifizierung: SCC optional (aber empfohlen als Backup)
      4. Ohne Zertifizierung: SCC zwingend erforderlich
    evidence_needed:
      - "Screenshot DPF-Zertifizierungsstatus"
      - "Dokumentation Prüfdatum"

  C_SUBPROCESSOR_SCC:
    id: C_SUBPROCESSOR_SCC
    title: "SCC für Unterauftragsverarbeiter"
    description: "SCC-Kette zu Unterauftragsverarbeitern im Drittland"
    gdpr_ref: "Art. 28(4), Art. 46 DSGVO"
    effort: medium
    when_applicable: "Subprozessoren im Drittland"
    what_to_do: |
      1. Liste aller Subprozessoren mit Standorten einholen
      2. Für jeden Drittland-Subprozessor: SCC oder Angemessenheit prüfen
      3. Vertragliche Weitergabe der Pflichten sicherstellen
    evidence_needed:
      - "Subprocessor-Liste mit Standorten"
      - "SCC-Nachweis für Drittland-Subprozessoren"

  C_TECHNICAL_SUPPLEMENTARY:
    id: C_TECHNICAL_SUPPLEMENTARY
    title: "Technische Zusatzmaßnahmen"
    description: "Ergänzende technische Schutzmaßnahmen bei Drittlandtransfer"
    gdpr_ref: "EDPB Recommendations 01/2020"
    effort: high
    when_applicable: "TIA zeigt unzureichendes Schutzniveau"
    what_to_do: |
      1. Ende-zu-Ende-Verschlüsselung implementieren (Schlüssel nur bei Exporteur)
      2. Pseudonymisierung mit Mapping-Tabelle im EWR
      3. Logging aller Drittland-Zugriffe
    evidence_needed:
      - "Verschlüsselungskonzept"
      - "Pseudonymisierungskonzept"
      - "Zugriffsprotokollierung"

# =============================================================================
# REGELN - Kategorie A: Datenklassifikation
# =============================================================================

rules:

  # ---------------------------------------------------------------------------
  # A. Datenklassifikation
  # ---------------------------------------------------------------------------

  - id: R-A001
    category: "A. Datenklassifikation"
    title: "Personenbezogene Daten vorhanden"
    description: "Es werden personenbezogene Daten verarbeitet"
    condition:
      field: data_types.personal_data
      operator: equals
      value: true
    effect:
      risk_add: 10
      controls_add: [C_TRANSPARENCY]
    severity: INFO
    gdpr_ref: "Art. 4(1), Art. 6 DSGVO"
    rationale: "Personenbezogene Daten erfordern Rechtsgrundlage nach Art. 6"

  - id: R-A002
    category: "A. Datenklassifikation"
    title: "Besondere Kategorien (Art. 9)"
    description: "Gesundheitsdaten, Religion, politische Meinung etc."
    condition:
      field: data_types.article_9_data
      operator: equals
      value: true
    effect:
      risk_add: 25
      feasibility: CONDITIONAL
      controls_add: [C_EXPLICIT_CONSENT, C_DSFA, C_ENCRYPTION]
      escalation: true
    severity: WARN
    gdpr_ref: "Art. 9 DSGVO"
    rationale: "Besondere Kategorien sind grundsätzlich verboten, Ausnahmen nur nach Art. 9(2)"

  - id: R-A003
    category: "A. Datenklassifikation"
    title: "Daten von Minderjährigen"
    description: "Es werden Daten von Personen unter 18 Jahren verarbeitet"
    condition:
      field: data_types.minor_data
      operator: equals
      value: true
    effect:
      risk_add: 20
      training_allowed: false
      controls_add: [C_PARENTAL_CONSENT, C_DSFA]
    severity: WARN
    gdpr_ref: "Art. 8 DSGVO, ErwGr. 38"
    rationale: "Kinder verdienen besonderen Schutz"

  - id: R-A004
    category: "A. Datenklassifikation"
    title: "KFZ-Kennzeichen"
    description: "Fahrzeugkennzeichen werden verarbeitet"
    condition:
      field: data_types.license_plates
      operator: equals
      value: true
    effect:
      risk_add: 15
      controls_add: [C_RETENTION_POLICY]
      suggested_patterns: [P_PIXELIZATION, P_PRE_ANON]
    severity: WARN
    gdpr_ref: "Art. 4(1) DSGVO"
    rationale: "Kennzeichen ermöglichen Identifikation des Halters"

  - id: R-A005
    category: "A. Datenklassifikation"
    title: "Biometrische Daten"
    description: "Fingerabdrücke, Gesichtserkennung oder andere biometrische Merkmale"
    condition:
      field: data_types.biometric_data
      operator: equals
      value: true
    effect:
      risk_add: 30
      feasibility: CONDITIONAL
      controls_add: [C_EXPLICIT_CONSENT, C_DSFA, C_ENCRYPTION, C_ACCESS_LOGGING]
      suggested_patterns: [P_PIXELIZATION]
      escalation: true
    severity: WARN
    gdpr_ref: "Art. 9(1), Art. 4(14) DSGVO"
    rationale: "Biometrische Daten zur Identifikation sind besondere Kategorien"

  - id: R-A006
    category: "A. Datenklassifikation"
    title: "Standortdaten"
    description: "GPS, Bewegungsprofile oder Aufenthaltsorte"
    condition:
      field: data_types.location_data
      operator: equals
      value: true
    effect:
      risk_add: 15
      controls_add: [C_EXPLICIT_CONSENT, C_RETENTION_POLICY]
    severity: WARN
    gdpr_ref: "Art. 4(1) DSGVO, ErwGr. 75"
    rationale: "Standortdaten ermöglichen detaillierte Bewegungsprofile"

  - id: R-A007
    category: "A. Datenklassifikation"
    title: "Nur öffentliche/anonyme Daten"
    description: "Keine personenbezogenen Daten"
    condition:
      field: data_types.public_data
      operator: equals
      value: true
    effect:
      risk_add: 0
    severity: INFO
    gdpr_ref: "ErwGr. 26 DSGVO"
    rationale: "Anonyme Daten fallen nicht unter die DSGVO"

  # ---------------------------------------------------------------------------
  # B. Zweck & Rechtsgrundlage
  # ---------------------------------------------------------------------------

  - id: R-B001
    category: "B. Zweck & Rechtsgrundlage"
    title: "Kundenservice"
    description: "Verarbeitung zum Zweck des Kundenservice"
    condition:
      field: purpose.customer_support
      operator: equals
      value: true
    effect:
      risk_add: 5
      legal_basis: "Art. 6(1)(b) DSGVO"
    severity: INFO
    rationale: "Kundenservice kann auf Vertragserfüllung gestützt werden"

  - id: R-B002
    category: "B. Zweck & Rechtsgrundlage"
    title: "Bewertung/Scoring von Personen"
    description: "Personen werden bewertet, eingestuft oder gerankt"
    condition:
      field: purpose.evaluation_scoring
      operator: equals
      value: true
    effect:
      risk_add: 20
      controls_add: [C_TRANSPARENCY, C_CONTESTATION, C_DSFA]
    severity: WARN
    gdpr_ref: "Art. 22, § 31 BDSG"
    rationale: "Scoring erfordert besondere Transparenz und Anfechtbarkeit"

  - id: R-B003
    category: "B. Zweck & Rechtsgrundlage"
    title: "Profiling"
    description: "Automatisierte Analyse persönlicher Aspekte"
    condition:
      field: purpose.profiling
      operator: equals
      value: true
    effect:
      risk_add: 20
      controls_add: [C_TRANSPARENCY, C_DSFA]
    severity: WARN
    gdpr_ref: "Art. 4(4), Art. 22 DSGVO"
    rationale: "Profiling erfordert erhöhte Transparenz"

  - id: R-B004
    category: "B. Zweck & Rechtsgrundlage"
    title: "Marketing mit personenbezogenen Daten"
    description: "Werbung unter Verwendung personenbezogener Daten"
    condition:
      all_of:
        - field: purpose.marketing
          operator: equals
          value: true
        - field: data_types.personal_data
          operator: equals
          value: true
    effect:
      risk_add: 10
      feasibility: CONDITIONAL
      controls_add: [C_EXPLICIT_CONSENT]
    severity: WARN
    gdpr_ref: "Art. 6(1)(a), § 7 UWG"
    rationale: "E-Mail-Marketing erfordert i.d.R. Einwilligung"

  # ---------------------------------------------------------------------------
  # C. Automatisierung & Entscheidungen
  # ---------------------------------------------------------------------------

  - id: R-C001
    category: "C. Automatisierung"
    title: "Assistive KI-Nutzung"
    description: "KI macht Vorschläge, Mensch entscheidet"
    condition:
      field: automation
      operator: equals
      value: assistive
    effect:
      risk_add: 0
    severity: INFO
    rationale: "Human-in-the-loop garantiert → geringes Risiko"

  - id: R-C002
    category: "C. Automatisierung"
    title: "Teilautomatisierung"
    description: "KI trifft Vorentscheidungen, Mensch prüft"
    condition:
      field: automation
      operator: equals
      value: semi_automated
    effect:
      risk_add: 10
      controls_add: [C_TRANSPARENCY]
    severity: INFO
    rationale: "Human-on-the-loop reduziert Risiko"

  - id: R-C003
    category: "C. Automatisierung"
    title: "Vollautomatisierte Verarbeitung"
    description: "KI entscheidet ohne menschliche Prüfung"
    condition:
      field: automation
      operator: equals
      value: fully_automated
    effect:
      risk_add: 25
      art22_risk: true
      controls_add: [C_CONTESTATION, C_TRANSPARENCY]
      suggested_patterns: [P_HITL_ENFORCED]
    severity: WARN
    gdpr_ref: "Art. 22 DSGVO"
    rationale: "Vollautomatisierte Entscheidungen sind nach Art. 22 grundsätzlich verboten"

  - id: R-C004
    category: "C. Automatisierung"
    title: "Entscheidungen mit rechtlicher Wirkung"
    description: "Automatisierte Entscheidungen mit rechtlichen Konsequenzen"
    condition:
      all_of:
        - field: automation
          operator: equals
          value: fully_automated
        - field: outputs.legal_effects
          operator: equals
          value: true
    effect:
      feasibility: NO
    severity: BLOCK
    gdpr_ref: "Art. 22(1) DSGVO"
    rationale: "Vollautomatisierte Entscheidungen mit rechtlicher Wirkung sind verboten"

  - id: R-C005
    category: "C. Automatisierung"
    title: "HR-Kontext mit vollautomatisiertem Scoring"
    description: "Mitarbeiterbewertung durch vollautomatisierte KI"
    condition:
      all_of:
        - field: domain
          operator: in
          value: [hr, recruiting]
        - field: purpose.evaluation_scoring
          operator: equals
          value: true
        - field: automation
          operator: equals
          value: fully_automated
    effect:
      feasibility: NO
    severity: BLOCK
    gdpr_ref: "Art. 22 DSGVO, § 26 BDSG"
    rationale: "Vollautomatisiertes HR-Scoring ist unzulässig"

  # ---------------------------------------------------------------------------
  # D. Training & Modell-Nutzung
  # ---------------------------------------------------------------------------

  - id: R-D001
    category: "D. Training & Modell"
    title: "RAG ohne Training"
    description: "Nur Dokumentensuche, kein Modell-Training"
    condition:
      all_of:
        - field: model_usage.rag
          operator: equals
          value: true
        - field: model_usage.training
          operator: equals
          value: false
    effect:
      risk_add: 0
      suggested_patterns: [P_RAG_ONLY]
    severity: INFO
    rationale: "RAG ist datenschutzfreundlich - Daten fließen nicht ins Modell"

  - id: R-D002
    category: "D. Training & Modell"
    title: "Training mit personenbezogenen Daten"
    description: "KI-Training unter Verwendung personenbezogener Daten"
    condition:
      all_of:
        - field: model_usage.training
          operator: equals
          value: true
        - field: data_types.personal_data
          operator: equals
          value: true
    effect:
      risk_add: 25
      feasibility: CONDITIONAL
      training_allowed: false
      suggested_patterns: [P_RAG_ONLY, P_PRE_ANON]
      controls_add: [C_EXPLICIT_CONSENT, C_DSFA]
    severity: WARN
    gdpr_ref: "Art. 5(1)(b), Art. 6 DSGVO"
    rationale: "Training ist eigenständiger Verarbeitungszweck"

  - id: R-D003
    category: "D. Training & Modell"
    title: "Training mit Daten Minderjähriger"
    description: "KI-Training mit Daten von Kindern/Jugendlichen"
    condition:
      all_of:
        - field: model_usage.training
          operator: equals
          value: true
        - field: data_types.minor_data
          operator: equals
          value: true
    effect:
      feasibility: NO
    severity: BLOCK
    gdpr_ref: "Art. 8 DSGVO"
    rationale: "Training mit Daten Minderjähriger ist nicht zulässig"

  - id: R-D004
    category: "D. Training & Modell"
    title: "Fine-Tuning mit Kundengesprächen"
    description: "Modell-Anpassung mit realen Kundeninteraktionen"
    condition:
      all_of:
        - field: model_usage.finetune
          operator: equals
          value: true
        - field: data_types.customer_data
          operator: equals
          value: true
    effect:
      risk_add: 15
      feasibility: CONDITIONAL
      suggested_patterns: [P_PRE_ANON, P_RAG_ONLY]
      controls_add: [C_EXPLICIT_CONSENT]
    severity: WARN
    rationale: "Fine-Tuning nur mit anonymisierten Daten oder Einwilligung"

  # ---------------------------------------------------------------------------
  # E. Hosting & Drittlandtransfer
  # ---------------------------------------------------------------------------

  - id: R-E001
    category: "E. Hosting"
    title: "EU-Hosting"
    description: "Daten werden in der EU/EWR verarbeitet"
    condition:
      field: hosting.region
      operator: equals
      value: eu
    effect:
      risk_add: 0
    severity: INFO
    rationale: "EU-Hosting vermeidet Drittlandtransfer-Problematik"

  - id: R-E002
    category: "E. Hosting"
    title: "Drittland-Hosting"
    description: "Daten werden außerhalb der EU verarbeitet"
    condition:
      field: hosting.region
      operator: equals
      value: third_country
    effect:
      risk_add: 15
      controls_add: [C_SCC, C_TIA, C_ENCRYPTION]
      suggested_patterns: [P_EU_HOSTING]
    severity: WARN
    gdpr_ref: "Art. 44ff DSGVO"
    rationale: "Drittlandtransfer erfordert zusätzliche Garantien"

  - id: R-E003
    category: "E. Hosting"
    title: "Drittland mit sensiblen Daten"
    description: "Sensible Daten außerhalb der EU"
    condition:
      all_of:
        - field: hosting.region
          operator: equals
          value: third_country
        - any_of:
            - field: data_types.article_9_data
              operator: equals
              value: true
            - field: data_types.biometric_data
              operator: equals
              value: true
            - field: data_types.minor_data
              operator: equals
              value: true
    effect:
      risk_add: 25
      feasibility: CONDITIONAL
      escalation: true
      suggested_patterns: [P_EU_HOSTING]
    severity: WARN
    gdpr_ref: "Art. 44, Art. 9 DSGVO"
    rationale: "Sensible Daten im Drittland erfordern umfangreiche Schutzmaßnahmen"

  # ---------------------------------------------------------------------------
  # E2. Standardvertragsklauseln (SCC)
  # ---------------------------------------------------------------------------

  - id: R-E004
    category: "E. Transfer"
    title: "SCC vorhanden bei Drittlandtransfer"
    description: "Standardvertragsklauseln mit Drittland-Provider abgeschlossen"
    condition:
      all_of:
        - field: provider.location
          operator: in
          value: [us, non_eu, third_country]
        - field: contracts.scc.present
          operator: equals
          value: true
    effect:
      risk_add: 5
      controls_add: [C_TIA]
    severity: INFO
    gdpr_ref: "Art. 46(2)(c) DSGVO"
    rationale: "SCC bieten rechtliche Grundlage, TIA zur Validierung erforderlich"

  - id: R-E005
    category: "E. Transfer"
    title: "Alte SCC-Version verwendet"
    description: "SCC vorhanden, aber nicht die aktuelle Version (2021)"
    condition:
      all_of:
        - field: contracts.scc.present
          operator: equals
          value: true
        - field: contracts.scc.version
          operator: not_equals
          value: new_scc_2021
    effect:
      risk_add: 10
      controls_add: [C_SCC_NEW]
      flags: ["SCC_VERSION_OUTDATED"]
    severity: WARN
    gdpr_ref: "EU 2021/914"
    rationale: "Alte SCC-Versionen sind seit Ende 2022 nicht mehr gültig"

  - id: R-E006
    category: "E. Transfer"
    title: "USA-Transfer mit DPF-Zertifizierung"
    description: "US-Provider ist unter Data Privacy Framework zertifiziert"
    condition:
      all_of:
        - field: provider.location
          operator: equals
          value: us
        - field: provider.dpf_certified
          operator: equals
          value: true
    effect:
      risk_add: 0
    severity: INFO
    gdpr_ref: "EU-US DPF Beschluss 2023"
    rationale: "DPF-Zertifizierung ermöglicht Transfer ohne zusätzliche SCC"

  - id: R-E007
    category: "E. Transfer"
    title: "USA-Transfer ohne DPF-Zertifizierung"
    description: "US-Provider ist NICHT unter DPF zertifiziert"
    condition:
      all_of:
        - field: provider.location
          operator: equals
          value: us
        - field: provider.dpf_certified
          operator: equals
          value: false
    effect:
      risk_add: 15
      controls_add: [C_SCC, C_TIA, C_SCC_DPF_CHECK]
      flags: ["US_NO_DPF"]
    severity: WARN
    gdpr_ref: "DSGVO Art. 44ff, Schrems II"
    rationale: "Ohne DPF sind SCC + TIA zwingend erforderlich"

  - id: R-E008
    category: "E. Transfer"
    title: "Lokales Hosting ohne Drittlandzugriff"
    description: "Vollständig lokale Verarbeitung im EWR ohne externen Zugriff"
    condition:
      all_of:
        - field: hosting.type
          operator: equals
          value: on_premises
        - field: hosting.region
          operator: equals
          value: eu
        - field: provider.remote_access
          operator: equals
          value: false
    effect:
      risk_add: 0
      flags: ["NO_TRANSFER_REQUIRED"]
    severity: INFO
    rationale: "Rein lokale Verarbeitung erfordert keine SCC"

  - id: R-E009
    category: "E. Transfer"
    title: "Support-Zugriff aus Drittland"
    description: "Provider-Support kann von Drittland aus auf Daten zugreifen"
    condition:
      all_of:
        - field: provider.support_location
          operator: in
          value: [us, non_eu, third_country, global]
        - field: data_types.personal_data
          operator: equals
          value: true
    effect:
      risk_add: 10
      controls_add: [C_SCC, C_TIA]
      flags: ["SUPPORT_TRANSFER_RISK"]
    severity: WARN
    gdpr_ref: "Art. 44 DSGVO"
    rationale: "Remote-Zugriff auf EU-Daten von Drittland = Transfer"

  - id: R-E010
    category: "E. Transfer"
    title: "Unterauftragsverarbeiter im Drittland"
    description: "Provider nutzt Subprozessoren außerhalb des EWR"
    condition:
      all_of:
        - field: provider.subprocessors.third_country
          operator: equals
          value: true
    effect:
      risk_add: 10
      controls_add: [C_SUBPROCESSOR_SCC, C_TIA]
      flags: ["SUBPROCESSOR_TRANSFER"]
    severity: WARN
    gdpr_ref: "Art. 28(4) DSGVO"
    rationale: "SCC-Kette zu Drittland-Subprozessoren erforderlich"

  - id: R-E011
    category: "E. Transfer"
    title: "TIA zeigt unzureichendes Schutzniveau"
    description: "Transfer Impact Assessment ergibt Defizite"
    condition:
      all_of:
        - field: contracts.tia.present
          operator: equals
          value: true
        - field: contracts.tia.result
          operator: equals
          value: inadequate
    effect:
      risk_add: 20
      controls_add: [C_TECHNICAL_SUPPLEMENTARY]
      flags: ["TIA_INADEQUATE"]
      escalation: true
    severity: WARN
    gdpr_ref: "EDPB Recommendations 01/2020"
    rationale: "Zusätzliche technische Maßnahmen erforderlich"

  - id: R-E012
    category: "E. Transfer"
    title: "TIA zeigt Transfer nicht möglich"
    description: "Transfer Impact Assessment ergibt: kein angemessenes Niveau erreichbar"
    condition:
      all_of:
        - field: contracts.tia.present
          operator: equals
          value: true
        - field: contracts.tia.result
          operator: equals
          value: not_feasible
    effect:
      feasibility: NO
      flags: ["TRANSFER_BLOCKED"]
    severity: BLOCK
    gdpr_ref: "Art. 44 DSGVO"
    rationale: "Transfer ohne angemessenes Schutzniveau ist unzulässig"

  # ---------------------------------------------------------------------------
  # F. Domain-spezifische Regeln
  # ---------------------------------------------------------------------------

  - id: R-F001
    category: "F. Domain-spezifisch"
    title: "Bildung + automatisiertes Scoring"
    description: "Automatisierte Bewertung von Schülern/Studenten"
    condition:
      all_of:
        - field: domain
          operator: in
          value: [education, higher_education, vocational_training]
        - field: purpose.evaluation_scoring
          operator: equals
          value: true
        - field: automation
          operator: equals
          value: fully_automated
    effect:
      feasibility: NO
    severity: BLOCK
    rationale: "Vollautomatisiertes Scoring im Bildungsbereich nicht zulässig"

  - id: R-F002
    category: "F. Domain-spezifisch"
    title: "Stadtwerke Chatbot (Standard)"
    description: "Kundenservice-Chatbot für Versorgungsunternehmen"
    condition:
      all_of:
        - field: domain
          operator: equals
          value: utilities
        - field: purpose.customer_support
          operator: equals
          value: true
        - field: model_usage.rag
          operator: equals
          value: true
        - field: model_usage.training
          operator: equals
          value: false
    effect:
      feasibility: YES
      risk_add: 0
    severity: INFO
    rationale: "Standard-Anwendungsfall mit geringem Risiko"

  - id: R-F003
    category: "F. Domain-spezifisch"
    title: "Parkhaus mit Kennzeichen-Training"
    description: "KI-Training mit KFZ-Kennzeichen"
    condition:
      all_of:
        - field: domain
          operator: equals
          value: real_estate
        - field: data_types.license_plates
          operator: equals
          value: true
        - field: model_usage.training
          operator: equals
          value: true
    effect:
      feasibility: NO
      suggested_patterns: [P_PIXELIZATION]
    severity: BLOCK
    rationale: "Training mit Kennzeichen ohne Einwilligung nicht zulässig"

  - id: R-F004
    category: "F. Domain-spezifisch"
    title: "Gesundheitswesen mit Art.9-Daten"
    description: "KI im Gesundheitsbereich mit Patientendaten"
    condition:
      all_of:
        - field: domain
          operator: in
          value: [healthcare, medical_devices, pharma, elderly_care]
        - field: data_types.article_9_data
          operator: equals
          value: true
    effect:
      risk_add: 20
      feasibility: CONDITIONAL
      controls_add: [C_DSFA, C_ENCRYPTION, C_ACCESS_LOGGING]
      escalation: true
    severity: WARN
    gdpr_ref: "Art. 9(2)(h) DSGVO"
    rationale: "Gesundheitsdaten nur mit besonderen Schutzmaßnahmen"

  # ---------------------------------------------------------------------------
  # G. Aggregation & Ergebnis
  # ---------------------------------------------------------------------------

  - id: R-G001
    category: "G. Aggregation"
    title: "BLOCK-Regel greift"
    description: "Mindestens eine blockierende Regel wurde ausgelöst"
    condition:
      aggregate: any_block
    effect:
      feasibility: NO
    severity: BLOCK
    rationale: "Hard-Block kann nicht überschrieben werden"

  - id: R-G002
    category: "G. Aggregation"
    title: "Hoher Risikoscore"
    description: "Aggregierter Risikoscore über Schwellenwert"
    condition:
      aggregate: risk_score_gte
      value: 60
    effect:
      feasibility: CONDITIONAL
      controls_add: [C_DSFA]
      escalation: true
    severity: WARN
    rationale: "Hohe Risiko-Aggregation erfordert DSFA"

  - id: R-G003
    category: "G. Aggregation"
    title: "Nur INFO-Regeln"
    description: "Keine WARN oder BLOCK Regeln ausgelöst"
    condition:
      aggregate: only_info
    effect:
      feasibility: YES
    severity: INFO
    rationale: "Geringes Risiko bei nur informativen Regeln"

# =============================================================================
# Problem-Lösungs-Mappings (für LLM-Prompt-Generierung)
# =============================================================================

problem_solutions:

  - problem_id: "license_plates_no_consent"
    title: "KFZ-Kennzeichen ohne Rechtsgrundlage"
    triggers:
      - rule: R-A004
        without_control: C_EXPLICIT_CONSENT
    solutions:
      - id: "pixelize"
        title: "Kennzeichen verpixeln"
        pattern: P_PIXELIZATION
        removes_problem: true
        team_question: "Funktioniert das Projekt auch mit verpixelten (nicht lesbaren) Kennzeichen?"
      - id: "consent"
        title: "Einwilligung einholen"
        control: C_EXPLICIT_CONSENT
        removes_problem: true
        team_question: "Können Sie die Einwilligung aller Fahrzeughalter sicherstellen?"

  - problem_id: "biometrics_no_consent"
    title: "Biometrische Daten ohne Einwilligung"
    triggers:
      - rule: R-A005
        without_control: C_EXPLICIT_CONSENT
    solutions:
      - id: "anonymize_faces"
        title: "Gesichter anonymisieren"
        pattern: P_PIXELIZATION
        removes_problem: true
        team_question: "Funktioniert das Projekt auch ohne erkennbare Gesichter?"
      - id: "explicit_consent"
        title: "Ausdrückliche Einwilligung"
        control: C_EXPLICIT_CONSENT
        removes_problem: true
        team_question: "Können Sie eine ausdrückliche Einwilligung aller Betroffenen sicherstellen?"

  - problem_id: "training_with_pii"
    title: "KI-Training mit personenbezogenen Daten"
    triggers:
      - rule: R-D002
    solutions:
      - id: "use_rag"
        title: "RAG statt Training"
        pattern: P_RAG_ONLY
        removes_problem: true
        team_question: "Reicht es, wenn die KI Ihre Dokumente durchsuchen kann statt daraus zu lernen?"
      - id: "anonymize_first"
        title: "Trainingsdaten anonymisieren"
        pattern: P_PRE_ANON
        removes_problem: true
        team_question: "Können die Daten vor dem Training vollständig anonymisiert werden?"

  - problem_id: "fully_automated_decisions"
    title: "Vollautomatisierte Entscheidungen"
    triggers:
      - rule: R-C003
    solutions:
      - id: "add_hitl"
        title: "Menschliche Überprüfung einführen"
        pattern: P_HITL_ENFORCED
        removes_problem: true
        team_question: "Kann ein Mensch jede Entscheidung vor Wirksamkeit prüfen?"

  - problem_id: "third_country_no_scc"
    title: "Drittlandtransfer ohne SCC"
    triggers:
      - rule: R-E002
        without_control: C_SCC
    solutions:
      - id: "add_scc"
        title: "SCC mit Provider abschließen"
        control: C_SCC_NEW
        removes_problem: true
        team_question: "Kann der Provider die neuen EU-Standardvertragsklauseln unterzeichnen?"
      - id: "switch_eu"
        title: "Zu EU-Anbieter wechseln"
        pattern: P_EU_HOSTING
        removes_problem: true
        team_question: "Gibt es eine EU-Alternative für diesen Dienst?"
      - id: "local_hosting"
        title: "Lokales Hosting nutzen"
        removes_problem: true
        team_question: "Kann die Verarbeitung vollständig lokal im EWR erfolgen?"

  - problem_id: "us_provider_no_dpf"
    title: "US-Provider ohne DPF-Zertifizierung"
    triggers:
      - rule: R-E007
    solutions:
      - id: "check_dpf"
        title: "DPF-Status prüfen"
        control: C_SCC_DPF_CHECK
        removes_problem: false
        team_question: "Wurde geprüft ob der Provider mittlerweile DPF-zertifiziert ist?"
      - id: "add_scc_tia"
        title: "SCC + TIA implementieren"
        controls: [C_SCC_NEW, C_TIA]
        removes_problem: true
        team_question: "Hat der Provider die neuen SCC unterzeichnet und wurde ein TIA durchgeführt?"

  - problem_id: "outdated_scc"
    title: "Veraltete SCC-Version"
    triggers:
      - rule: R-E005
    solutions:
      - id: "update_scc"
        title: "SCC auf Version 2021 aktualisieren"
        control: C_SCC_NEW
        removes_problem: true
        team_question: "Kann der bestehende SCC-Vertrag auf die neue Version aktualisiert werden?"

  - problem_id: "support_from_third_country"
    title: "Support-Zugriff aus Drittland"
    triggers:
      - rule: R-E009
    solutions:
      - id: "restrict_access"
        title: "Zugriff auf EU-Support beschränken"
        removes_problem: true
        team_question: "Kann der Support auf EU-basiertes Personal beschränkt werden?"
      - id: "add_scc_support"
        title: "SCC für Support-Zugriffe"
        control: C_SCC
        removes_problem: true
        team_question: "Können SCC den Support-Zugriff aus dem Drittland abdecken?"

  - problem_id: "tia_inadequate"
    title: "TIA zeigt Defizite"
    triggers:
      - rule: R-E011
    solutions:
      - id: "add_technical_measures"
        title: "Technische Zusatzmaßnahmen implementieren"
        control: C_TECHNICAL_SUPPLEMENTARY
        removes_problem: true
        team_question: "Können Ende-zu-Ende-Verschlüsselung und Pseudonymisierung implementiert werden?"
      - id: "switch_provider"
        title: "Provider wechseln"
        pattern: P_EU_HOSTING
        removes_problem: true
        team_question: "Gibt es einen alternativen Provider mit besserem Schutzniveau?"

# =============================================================================
# Escalation-Triggers (wann DSB einschalten)
# =============================================================================

escalation_triggers:
  - condition: "Art. 9 Daten vorhanden"
    reason: "Besondere Kategorien erfordern DSB-Freigabe"
  - condition: "Minderjährige + Profiling/Scoring"
    reason: "Besonderer Schutz für Kinder"
  - condition: "Vollautomatisierte Entscheidungen mit Rechtswirkung"
    reason: "Art. 22 DSGVO Prüfung erforderlich"
  - condition: "Widersprüchliche Legal-RAG Ergebnisse"
    reason: "Juristische Klärung erforderlich"
  - condition: "Risikoscore >= 80"
    reason: "Sehr hohes aggregiertes Risiko"
