diff --git a/document-templates/generators/dsfa_template.py b/document-templates/generators/dsfa_template.py index d4c3682..670a9b3 100644 --- a/document-templates/generators/dsfa_template.py +++ b/document-templates/generators/dsfa_template.py @@ -330,6 +330,28 @@ def _generate_risk_assessment(ctx: dict) -> str: if any(ctx.get(k) for k in ["third_country_transfer", "processes_in_third_country"]): risks.append(("Zugriff durch Behoerden in Drittlaendern", "mittel", "hoch", "hoch")) + # Domain-spezifische Risiken (AI Act Annex III) + domain = ctx.get("domain", "") + if domain in ("hr", "recruiting") or ctx.get("has_hr_context"): + risks.append(("AGG-Verstoss: Diskriminierung bei Bewerberauswahl (§ 1 AGG)", "mittel", "hoch", "hoch")) + risks.append(("Beweislastumkehr bei Diskriminierungsklagen (§ 22 AGG)", "mittel", "hoch", "hoch")) + risks.append(("Art. 22 DSGVO: Unzulaessige automatisierte Einzelentscheidung", "mittel", "hoch", "hoch")) + risks.append(("Proxy-Diskriminierung durch Name/Foto/Alter-Erkennung", "mittel", "hoch", "hoch")) + + if domain in ("education", "higher_education", "vocational_training"): + risks.append(("Chancenungleichheit durch KI-gestuetzte Bewertung", "mittel", "hoch", "hoch")) + risks.append(("Benachteiligung Minderjaehriger ohne Lehrkraft-Kontrolle", "niedrig", "gross", "hoch")) + risks.append(("Fehlbewertung mit Auswirkung auf Bildungschancen", "mittel", "hoch", "hoch")) + + if domain in ("healthcare", "medical_devices", "pharma", "elderly_care"): + risks.append(("Fehldiagnose durch KI mit gesundheitlichen Folgen", "niedrig", "gross", "hoch")) + risks.append(("Falsche Triage-Priorisierung (lebenskritisch)", "niedrig", "gross", "hoch")) + risks.append(("Verletzung der Patientenautonomie", "mittel", "hoch", "hoch")) + + if domain in ("finance", "banking", "insurance", "investment"): + risks.append(("Diskriminierendes Kredit-Scoring", "mittel", "hoch", "hoch")) + risks.append(("Ungerechtfertigte Verweigerung von Finanzdienstleistungen", "mittel", "hoch", "hoch")) + lines.append("| Risiko | Eintrittswahrscheinlichkeit | Schwere | Gesamt |") lines.append("|--------|----------------------------|---------|--------|") for risk_name, likelihood, severity, overall in risks: