diff --git a/admin-compliance/app/sdk/advisory-board/page.tsx b/admin-compliance/app/sdk/advisory-board/page.tsx index 9c0d280..367f387 100644 --- a/admin-compliance/app/sdk/advisory-board/page.tsx +++ b/admin-compliance/app/sdk/advisory-board/page.tsx @@ -333,6 +333,10 @@ function AdvisoryBoardPageInner() { purposes: [] as string[], // Automation (single-select tile) automation: '' as string, + // BetrVG / works council + employee_monitoring: false, + hr_decision_support: false, + works_council_consulted: false, // Hosting (single-select tile) hosting_provider: '' as string, hosting_region: '' as string, @@ -420,6 +424,9 @@ function AdvisoryBoardPageInner() { retention_purpose: form.retention_purpose, contracts_list: form.contracts, subprocessors: form.subprocessors, + employee_monitoring: form.employee_monitoring, + hr_decision_support: form.hr_decision_support, + works_council_consulted: form.works_council_consulted, store_raw_text: true, } @@ -777,6 +784,52 @@ function AdvisoryBoardPageInner() { Informationspflicht, Recht auf menschliche Ueberpruefung und Anfechtungsmoeglichkeit.

+ + {/* BetrVG Section */} +
+

Betriebsrat & Beschaeftigtendaten

+

+ Relevant fuer deutsche Unternehmen mit Betriebsrat (§87 Abs.1 Nr.6 BetrVG). +

+
+ + + +
+
)} diff --git a/admin-compliance/app/sdk/use-cases/[id]/page.tsx b/admin-compliance/app/sdk/use-cases/[id]/page.tsx index 91aebdc..9046973 100644 --- a/admin-compliance/app/sdk/use-cases/[id]/page.tsx +++ b/admin-compliance/app/sdk/use-cases/[id]/page.tsx @@ -57,6 +57,8 @@ interface FullAssessment { dsfa_recommended: boolean art22_risk: boolean training_allowed: string + betrvg_conflict_score?: number + betrvg_consultation_required?: boolean triggered_rules?: TriggeredRule[] required_controls?: RequiredControl[] recommended_architecture?: PatternRecommendation[] @@ -167,6 +169,8 @@ export default function AssessmentDetailPage() { dsfa_recommended: assessment.dsfa_recommended, art22_risk: assessment.art22_risk, training_allowed: assessment.training_allowed, + betrvg_conflict_score: assessment.betrvg_conflict_score, + betrvg_consultation_required: assessment.betrvg_consultation_required, // AssessmentResultCard expects rule_code; backend stores code — map here triggered_rules: assessment.triggered_rules?.map(r => ({ rule_code: r.code, diff --git a/admin-compliance/app/sdk/use-cases/page.tsx b/admin-compliance/app/sdk/use-cases/page.tsx index 8c0e297..84d5367 100644 --- a/admin-compliance/app/sdk/use-cases/page.tsx +++ b/admin-compliance/app/sdk/use-cases/page.tsx @@ -10,6 +10,8 @@ interface Assessment { feasibility: string risk_level: string risk_score: number + betrvg_conflict_score?: number + betrvg_consultation_required?: boolean domain: string created_at: string } @@ -194,6 +196,16 @@ export default function UseCasesPage() { {feasibility.label} + {assessment.betrvg_conflict_score != null && assessment.betrvg_conflict_score > 0 && ( + = 75 ? 'bg-red-100 text-red-700' : + assessment.betrvg_conflict_score >= 50 ? 'bg-orange-100 text-orange-700' : + assessment.betrvg_conflict_score >= 25 ? 'bg-yellow-100 text-yellow-700' : + 'bg-green-100 text-green-700' + }`}> + BR {assessment.betrvg_conflict_score} + + )}
{assessment.domain} diff --git a/admin-compliance/components/sdk/use-case-assessment/AssessmentResultCard.tsx b/admin-compliance/components/sdk/use-case-assessment/AssessmentResultCard.tsx index e9642f7..43cfa31 100644 --- a/admin-compliance/components/sdk/use-case-assessment/AssessmentResultCard.tsx +++ b/admin-compliance/components/sdk/use-case-assessment/AssessmentResultCard.tsx @@ -10,6 +10,8 @@ interface AssessmentResult { dsfa_recommended: boolean art22_risk: boolean training_allowed: string + betrvg_conflict_score?: number + betrvg_consultation_required?: boolean summary: string recommendation: string alternative_approach?: string @@ -76,6 +78,21 @@ export function AssessmentResultCard({ result }: AssessmentResultCardProps) { Art. 22 Risiko )} + {result.betrvg_conflict_score != null && result.betrvg_conflict_score > 0 && ( + = 75 ? 'bg-red-100 text-red-700' : + result.betrvg_conflict_score >= 50 ? 'bg-orange-100 text-orange-700' : + result.betrvg_conflict_score >= 25 ? 'bg-yellow-100 text-yellow-700' : + 'bg-green-100 text-green-700' + }`}> + BR-Konflikt: {result.betrvg_conflict_score}/100 + + )} + {result.betrvg_consultation_required && ( + + BR-Konsultation erforderlich + + )}

{result.summary}

{result.recommendation}

diff --git a/ai-compliance-sdk/internal/ucca/escalation_models.go b/ai-compliance-sdk/internal/ucca/escalation_models.go index ace7074..15da033 100644 --- a/ai-compliance-sdk/internal/ucca/escalation_models.go +++ b/ai-compliance-sdk/internal/ucca/escalation_models.go @@ -1,6 +1,7 @@ package ucca import ( + "fmt" "time" "github.com/google/uuid" @@ -187,6 +188,12 @@ func (t *EscalationTrigger) DetermineEscalationLevel(result *AssessmentResult) ( } } + // BetrVG E3: Very high conflict score without consultation + if result.BetrvgConflictScore >= 75 && !result.Intake.WorksCouncilConsulted { + reasons = append(reasons, "BetrVG-Konfliktpotenzial sehr hoch (Score "+fmt.Sprintf("%d", result.BetrvgConflictScore)+") ohne BR-Konsultation") + return EscalationLevelE3, joinReasons(reasons, "E3 erforderlich: ") + } + if hasArt9 || result.DSFARecommended || result.RiskScore > t.E2RiskThreshold { if result.DSFARecommended { reasons = append(reasons, "DSFA empfohlen") @@ -197,6 +204,12 @@ func (t *EscalationTrigger) DetermineEscalationLevel(result *AssessmentResult) ( return EscalationLevelE2, joinReasons(reasons, "DSB-Konsultation erforderlich: ") } + // BetrVG E2: High conflict score + if result.BetrvgConflictScore >= 50 && result.BetrvgConsultationRequired && !result.Intake.WorksCouncilConsulted { + reasons = append(reasons, "BetrVG-Mitbestimmung erforderlich (Score "+fmt.Sprintf("%d", result.BetrvgConflictScore)+"), BR nicht konsultiert") + return EscalationLevelE2, joinReasons(reasons, "BR-Konsultation erforderlich: ") + } + // E1: Low priority checks // - WARN rules triggered // - Risk 20-40 diff --git a/ai-compliance-sdk/internal/ucca/json_regulation_module.go b/ai-compliance-sdk/internal/ucca/json_regulation_module.go index d4ba2df..d875170 100644 --- a/ai-compliance-sdk/internal/ucca/json_regulation_module.go +++ b/ai-compliance-sdk/internal/ucca/json_regulation_module.go @@ -56,6 +56,8 @@ func (m *JSONRegulationModule) defaultApplicability(facts *UnifiedFacts) bool { return facts.Organization.EUMember && facts.AIUsage.UsesAI case "dora": return facts.Financial.DORAApplies || facts.Financial.IsRegulated + case "betrvg": + return facts.Organization.Country == "DE" && facts.Organization.EmployeeCount >= 5 default: return true } diff --git a/ai-compliance-sdk/internal/ucca/models.go b/ai-compliance-sdk/internal/ucca/models.go index 68ceb84..2427fc0 100644 --- a/ai-compliance-sdk/internal/ucca/models.go +++ b/ai-compliance-sdk/internal/ucca/models.go @@ -217,6 +217,11 @@ type UseCaseIntake struct { // Only applicable for financial domains (banking, finance, insurance, investment) FinancialContext *FinancialContext `json:"financial_context,omitempty"` + // BetrVG / works council context (Germany) + EmployeeMonitoring bool `json:"employee_monitoring,omitempty"` // System can monitor employee behavior/performance + HRDecisionSupport bool `json:"hr_decision_support,omitempty"` // System supports HR decisions (hiring, evaluation, termination) + WorksCouncilConsulted bool `json:"works_council_consulted,omitempty"` // Works council has been consulted + // Opt-in to store raw text (otherwise only hash) StoreRawText bool `json:"store_raw_text,omitempty"` } @@ -471,6 +476,10 @@ type Assessment struct { Art22Risk bool `json:"art22_risk"` TrainingAllowed TrainingAllowed `json:"training_allowed"` + // BetrVG Conflict Score (0-100) — works council escalation risk + BetrvgConflictScore int `json:"betrvg_conflict_score"` + BetrvgConsultationRequired bool `json:"betrvg_consultation_required"` + // Corpus Versioning (RAG) CorpusVersionID *uuid.UUID `json:"corpus_version_id,omitempty"` CorpusVersion string `json:"corpus_version,omitempty"` diff --git a/ai-compliance-sdk/internal/ucca/policy_engine.go b/ai-compliance-sdk/internal/ucca/policy_engine.go index 5fa3947..2798de1 100644 --- a/ai-compliance-sdk/internal/ucca/policy_engine.go +++ b/ai-compliance-sdk/internal/ucca/policy_engine.go @@ -338,6 +338,9 @@ func (e *PolicyEngine) Evaluate(intake *UseCaseIntake) *AssessmentResult { // Determine complexity result.Complexity = e.calculateComplexity(result) + // Calculate BetrVG Conflict Score (Germany only, employees >= 5) + result.BetrvgConflictScore, result.BetrvgConsultationRequired = e.calculateBetrvgConflictScore(intake) + // Check if DSFA is recommended result.DSFARecommended = e.shouldRecommendDSFA(intake, result) @@ -880,3 +883,70 @@ func categorizeControl(id string) string { } return "organizational" } + +// calculateBetrvgConflictScore computes a works council conflict score (0-100). +// Higher score = higher risk of escalation with works council. +// Only relevant for German organizations with >= 5 employees. +func (e *PolicyEngine) calculateBetrvgConflictScore(intake *UseCaseIntake) (int, bool) { + if intake.Domain == "" { + return 0, false + } + + score := 0 + consultationRequired := false + + // Factor 1: Employee data processing (+10) + if intake.DataTypes.PersonalData && intake.DataTypes.EmployeeData { + score += 10 + consultationRequired = true + } + + // Factor 2: System can monitor behavior/performance (+20) + if intake.EmployeeMonitoring { + score += 20 + consultationRequired = true + } + + // Factor 3: Individualized usage data / logging (+15) + if intake.Retention.StorePrompts || intake.Retention.StoreResponses { + score += 15 + } + + // Factor 4: Communication analysis (+10) + if intake.Purpose.CustomerSupport || intake.Purpose.Marketing { + // These purposes on employee data suggest communication analysis + if intake.DataTypes.EmployeeData { + score += 10 + } + } + + // Factor 5: HR / Recruiting context (+20) + if intake.HRDecisionSupport { + score += 20 + consultationRequired = true + } + + // Factor 6: Scoring / Ranking of employees (+10) + if intake.Outputs.Rankings || intake.Outputs.Recommendations { + if intake.DataTypes.EmployeeData { + score += 10 + } + } + + // Factor 7: Fully automated decisions (+10) + if intake.Automation == "fully_automated" { + score += 10 + } + + // Factor 8: Works council NOT consulted (+5) + if consultationRequired && !intake.WorksCouncilConsulted { + score += 5 + } + + // Cap at 100 + if score > 100 { + score = 100 + } + + return score, consultationRequired +} diff --git a/ai-compliance-sdk/policies/obligations/v2/_manifest.json b/ai-compliance-sdk/policies/obligations/v2/_manifest.json index 6ac257e..f73eeee 100644 --- a/ai-compliance-sdk/policies/obligations/v2/_manifest.json +++ b/ai-compliance-sdk/policies/obligations/v2/_manifest.json @@ -54,8 +54,14 @@ "file": "dora_v2.json", "version": "1.0", "count": 20 + }, + { + "id": "betrvg", + "file": "betrvg_v2.json", + "version": "1.0", + "count": 12 } ], "tom_mapping_file": "_tom_mapping.json", - "total_obligations": 325 + "total_obligations": 337 } \ No newline at end of file diff --git a/ai-compliance-sdk/policies/obligations/v2/betrvg_v2.json b/ai-compliance-sdk/policies/obligations/v2/betrvg_v2.json new file mode 100644 index 0000000..678c207 --- /dev/null +++ b/ai-compliance-sdk/policies/obligations/v2/betrvg_v2.json @@ -0,0 +1,250 @@ +{ + "regulation": "betrvg", + "regulation_full_name": "Betriebsverfassungsgesetz (BetrVG)", + "version": "1.0", + "obligations": [ + { + "id": "BETRVG-OBL-001", + "title": "Mitbestimmung bei technischen Ueberwachungseinrichtungen", + "description": "Einfuehrung und Anwendung von technischen Einrichtungen, die dazu bestimmt sind, das Verhalten oder die Leistung der Arbeitnehmer zu ueberwachen, beduerfen der Zustimmung des Betriebsrats. Das BAG hat klargestellt, dass bereits die objektive Eignung zur Ueberwachung genuegt — eine tatsaechliche Nutzung zu diesem Zweck ist nicht erforderlich (BAG 1 ABR 20/21, 1 ABN 36/18).", + "applies_when": "technical system can monitor employee behavior or performance", + "applies_when_condition": { "all_of": [{ "field": "organization.country", "operator": "IN_ARRAY", "value": ["DE", "AT"] }, { "field": "data_types.employee_data", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "BetrVG", "article": "§ 87 Abs. 1 Nr. 6", "title": "Mitbestimmung bei technischen Ueberwachungseinrichtungen" }], + "sources": [{ "type": "national_law", "ref": "§ 87 Abs. 1 Nr. 6 BetrVG" }, { "type": "court_decision", "ref": "BAG 1 ABR 20/21 (Microsoft 365)" }, { "type": "court_decision", "ref": "BAG 1 ABN 36/18 (Standardsoftware)" }], + "category": "Mitbestimmung", + "responsible": "Arbeitgeber / HR", + "deadline": { "type": "on_event", "event": "Vor Einfuehrung des Systems" }, + "sanctions": { "description": "Unterlassungsanspruch des Betriebsrats, einstweilige Verfuegung moeglich, Betriebsvereinbarung ueber Einigungsstelle erzwingbar (§ 87 Abs. 2 BetrVG)" }, + "evidence": [{ "name": "Betriebsvereinbarung oder dokumentierte Zustimmung des Betriebsrats", "required": true }, "Protokoll der Betriebsratssitzung"], + "priority": "kritisch", + "tom_control_ids": ["TOM.GOV.01", "TOM.AC.01"], + "breakpilot_feature": "/sdk/betriebsvereinbarung", + "valid_from": "1972-01-19", + "valid_until": null, + "version": "1.0", + "how_to_implement": "Betriebsrat fruehzeitig informieren, gemeinsame Bewertung der Ueberwachungseignung durchfuehren, Betriebsvereinbarung mit Zweckbindung und verbotenen Nutzungen abschliessen." + }, + { + "id": "BETRVG-OBL-002", + "title": "Keine Geringfuegigkeitsschwelle bei Standardsoftware", + "description": "Auch alltaegliche Standardsoftware (Excel, Word, E-Mail-Clients) unterliegt der Mitbestimmung, wenn sie objektiv geeignet ist, Verhaltens- oder Leistungsdaten zu erheben. Es gibt keine Geringfuegigkeitsschwelle (BAG 1 ABN 36/18).", + "applies_when": "any software used by employees that can log or track usage", + "applies_when_condition": { "all_of": [{ "field": "organization.country", "operator": "EQUALS", "value": "DE" }, { "field": "data_types.employee_data", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "BetrVG", "article": "§ 87 Abs. 1 Nr. 6", "title": "Mitbestimmung — keine Geringfuegigkeitsschwelle" }], + "sources": [{ "type": "court_decision", "ref": "BAG 1 ABN 36/18" }], + "category": "Mitbestimmung", + "responsible": "IT-Leitung / HR", + "deadline": { "type": "on_event", "event": "Vor Einfuehrung oder Aenderung" }, + "sanctions": { "description": "Unterlassungsanspruch, einstweilige Verfuegung" }, + "evidence": [{ "name": "Bestandsaufnahme aller IT-Systeme mit Ueberwachungseignung", "required": true }], + "priority": "hoch", + "tom_control_ids": [], + "breakpilot_feature": null, + "valid_from": "2018-10-23", + "valid_until": null, + "version": "1.0" + }, + { + "id": "BETRVG-OBL-003", + "title": "Mitbestimmung bei Ueberwachung durch Drittsysteme (SaaS/Cloud)", + "description": "Auch wenn die Ueberwachung ueber ein Dritt-System (SaaS, Cloud, externer Anbieter) laeuft, bleibt der Betriebsrat zu beteiligen. Die Verantwortung des Arbeitgebers entfaellt nicht durch Auslagerung (BAG 1 ABR 68/13).", + "applies_when": "cloud or SaaS system processes employee data", + "applies_when_condition": { "all_of": [{ "field": "organization.country", "operator": "EQUALS", "value": "DE" }, { "field": "data_types.employee_data", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "BetrVG", "article": "§ 87 Abs. 1 Nr. 6", "title": "Mitbestimmung bei Drittsystemen" }], + "sources": [{ "type": "court_decision", "ref": "BAG 1 ABR 68/13" }], + "category": "Mitbestimmung", + "responsible": "IT-Leitung / Einkauf", + "deadline": { "type": "on_event", "event": "Vor Vertragsschluss mit SaaS-Anbieter" }, + "sanctions": { "description": "Unterlassungsanspruch" }, + "evidence": [{ "name": "Datenschutz-Folgenabschaetzung fuer Cloud-Dienst", "required": false }, "Betriebsvereinbarung"], + "priority": "hoch", + "tom_control_ids": ["TOM.PROC.01"], + "breakpilot_feature": null, + "valid_from": "2015-07-21", + "valid_until": null, + "version": "1.0" + }, + { + "id": "BETRVG-OBL-004", + "title": "Mitbestimmung bei E-Mail- und Kommunikationssoftware", + "description": "Sowohl Einfuehrung als auch Nutzung softwarebasierter Anwendungen fuer die E-Mail-Kommunikation sind mitbestimmungspflichtig (BAG 1 ABR 31/19). Dies gilt auch fuer Teams, Slack und vergleichbare Messenger.", + "applies_when": "organization introduces or changes email or messaging systems", + "applies_when_condition": { "all_of": [{ "field": "organization.country", "operator": "EQUALS", "value": "DE" }, { "field": "data_types.employee_data", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "BetrVG", "article": "§ 87 Abs. 1 Nr. 6", "title": "Mitbestimmung bei Kommunikationssoftware" }], + "sources": [{ "type": "court_decision", "ref": "BAG 1 ABR 31/19" }, { "type": "court_decision", "ref": "BAG 1 ABR 46/10" }], + "category": "Mitbestimmung", + "responsible": "IT-Leitung / HR", + "deadline": { "type": "on_event", "event": "Vor Einfuehrung oder Funktionsaenderung" }, + "sanctions": { "description": "Unterlassungsanspruch, einstweilige Verfuegung" }, + "evidence": [{ "name": "Betriebsvereinbarung zu E-Mail-/Messaging-Nutzung", "required": true }], + "priority": "hoch", + "tom_control_ids": ["TOM.AC.01"], + "breakpilot_feature": null, + "valid_from": "2021-01-27", + "valid_until": null, + "version": "1.0" + }, + { + "id": "BETRVG-OBL-005", + "title": "Verbot der dauerhaften Leistungsueberwachung", + "description": "Eine dauerhafte quantitative Erfassung und Auswertung einzelner Arbeitsschritte stellt einen schwerwiegenden Eingriff in das Persoenlichkeitsrecht dar (BAG 1 ABR 46/15). Belastungsstatistiken und KPI-Dashboards auf Personenebene beduerfen besonderer Rechtfertigung.", + "applies_when": "system provides individual performance metrics or KPIs", + "applies_when_condition": { "all_of": [{ "field": "organization.country", "operator": "EQUALS", "value": "DE" }, { "field": "purpose.profiling", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "BetrVG", "article": "§ 87 Abs. 1 Nr. 6", "title": "Persoenlichkeitsschutz bei Kennzahlenueberwachung" }, { "norm": "GG", "article": "Art. 2 Abs. 1 i.V.m. Art. 1 Abs. 1", "title": "Allgemeines Persoenlichkeitsrecht" }], + "sources": [{ "type": "court_decision", "ref": "BAG 1 ABR 46/15 (Belastungsstatistik)" }], + "category": "Mitbestimmung", + "responsible": "HR / Compliance", + "deadline": { "type": "recurring", "interval": "laufend" }, + "sanctions": { "description": "Unterlassungsanspruch, Schadensersatz bei Persoenlichkeitsrechtsverletzung" }, + "evidence": [{ "name": "Nachweis dass keine individuelle Leistungsueberwachung stattfindet", "required": true }], + "priority": "kritisch", + "tom_control_ids": ["TOM.GOV.03"], + "breakpilot_feature": null, + "valid_from": "2017-04-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "BETRVG-OBL-006", + "title": "Unterrichtung bei Planung technischer Anlagen", + "description": "Der Arbeitgeber hat den Betriebsrat ueber die Planung von technischen Anlagen rechtzeitig unter Vorlage der erforderlichen Unterlagen zu unterrichten und mit ihm zu beraten.", + "applies_when": "organization plans new technical infrastructure", + "applies_when_condition": { "all_of": [{ "field": "organization.country", "operator": "EQUALS", "value": "DE" }] }, + "legal_basis": [{ "norm": "BetrVG", "article": "§ 90 Abs. 1 Nr. 3", "title": "Unterrichtungs- und Beratungsrechte bei Planung" }], + "sources": [{ "type": "national_law", "ref": "§ 90 BetrVG" }], + "category": "Information", + "responsible": "IT-Leitung", + "deadline": { "type": "on_event", "event": "Rechtzeitig vor Umsetzung" }, + "sanctions": { "description": "Beratungsanspruch, ggf. Aussetzung der Massnahme" }, + "evidence": [{ "name": "Unterrichtungsschreiben an Betriebsrat mit technischer Dokumentation", "required": true }], + "priority": "hoch", + "tom_control_ids": [], + "breakpilot_feature": null, + "valid_from": "1972-01-19", + "valid_until": null, + "version": "1.0" + }, + { + "id": "BETRVG-OBL-007", + "title": "Mitbestimmung bei Personalfrageboegen und Bewertungssystemen", + "description": "Personalfrageboegen und allgemeine Beurteilungsgrundsaetze beduerfen der Zustimmung des Betriebsrats. Dies umfasst auch KI-gestuetzte Bewertungssysteme fuer Mitarbeiterbeurteilungen (BAG 1 ABR 40/07).", + "applies_when": "AI or IT system supports employee evaluation or surveys", + "applies_when_condition": { "all_of": [{ "field": "organization.country", "operator": "EQUALS", "value": "DE" }, { "field": "purpose.profiling", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "BetrVG", "article": "§ 94", "title": "Personalfrageboegen, Beurteilungsgrundsaetze" }, { "norm": "BetrVG", "article": "§ 95", "title": "Auswahlrichtlinien" }], + "sources": [{ "type": "court_decision", "ref": "BAG 1 ABR 40/07" }, { "type": "court_decision", "ref": "BAG 1 ABR 16/07" }], + "category": "Mitbestimmung", + "responsible": "HR", + "deadline": { "type": "on_event", "event": "Vor Einfuehrung des Bewertungssystems" }, + "sanctions": { "description": "Nichtigkeit der Bewertung, Unterlassungsanspruch" }, + "evidence": [{ "name": "Betriebsvereinbarung zu Beurteilungsgrundsaetzen", "required": true }], + "priority": "kritisch", + "tom_control_ids": ["TOM.GOV.01"], + "breakpilot_feature": null, + "valid_from": "1972-01-19", + "valid_until": null, + "version": "1.0" + }, + { + "id": "BETRVG-OBL-008", + "title": "Mitbestimmung bei KI-gestuetztem Recruiting", + "description": "KI-Systeme im Recruiting-Prozess (CV-Screening, Ranking, Vorselektion) beruehren die Mitbestimmung bei Auswahlrichtlinien (§ 95 BetrVG) und ggf. bei Einstellungen (§ 99 BetrVG). Zusaetzlich AI Act Hochrisiko-Klassifikation (Annex III Nr. 4).", + "applies_when": "AI system used in hiring, promotion or termination decisions", + "applies_when_condition": { "all_of": [{ "field": "organization.country", "operator": "EQUALS", "value": "DE" }, { "field": "purpose.automation", "operator": "EQUALS", "value": true }, { "field": "data_types.employee_data", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "BetrVG", "article": "§ 95", "title": "Auswahlrichtlinien" }, { "norm": "BetrVG", "article": "§ 99", "title": "Mitbestimmung bei personellen Einzelmassnahmen" }, { "norm": "EU AI Act", "article": "Annex III Nr. 4", "title": "Hochrisiko: Beschaeftigung" }], + "sources": [{ "type": "national_law", "ref": "§ 95, § 99 BetrVG" }], + "category": "Mitbestimmung", + "responsible": "HR / Legal", + "deadline": { "type": "on_event", "event": "Vor Einsatz im Recruiting" }, + "sanctions": { "description": "Unterlassungsanspruch, Anfechtung der Einstellung, AI Act Bussgeld bei Hochrisiko-Verstoss" }, + "evidence": [{ "name": "Betriebsvereinbarung KI im Recruiting", "required": true }, "DSFA", "AI Act Konformitaetsbewertung"], + "priority": "kritisch", + "tom_control_ids": ["TOM.GOV.01", "TOM.FAIR.01"], + "breakpilot_feature": "/sdk/ai-act", + "valid_from": "1972-01-19", + "valid_until": null, + "version": "1.0" + }, + { + "id": "BETRVG-OBL-009", + "title": "Mitbestimmung bei Betriebsaenderungen durch KI", + "description": "Grundlegende Aenderung der Betriebsorganisation durch KI-Einfuehrung kann eine Betriebsaenderung darstellen. In Unternehmen mit mehr als 20 wahlberechtigten Arbeitnehmern ist ein Interessenausgleich zu versuchen und ein Sozialplan aufzustellen.", + "applies_when": "AI introduction fundamentally changes work organization", + "applies_when_condition": { "all_of": [{ "field": "organization.country", "operator": "EQUALS", "value": "DE" }, { "field": "organization.employee_count", "operator": "GREATER_THAN", "value": 20 }] }, + "legal_basis": [{ "norm": "BetrVG", "article": "§ 111", "title": "Betriebsaenderungen" }, { "norm": "BetrVG", "article": "§ 112", "title": "Interessenausgleich, Sozialplan" }], + "sources": [{ "type": "national_law", "ref": "§§ 111-113 BetrVG" }], + "category": "Mitbestimmung", + "responsible": "Geschaeftsfuehrung / HR", + "deadline": { "type": "on_event", "event": "Rechtzeitig vor Umsetzung" }, + "sanctions": { "description": "Nachteilsausgleich, Sozialplananspruch, Anfechtung der Massnahme" }, + "evidence": [{ "name": "Interessenausgleich", "required": false }, "Sozialplan", "Unterrichtung des Betriebsrats"], + "priority": "hoch", + "tom_control_ids": [], + "breakpilot_feature": null, + "valid_from": "1972-01-19", + "valid_until": null, + "version": "1.0" + }, + { + "id": "BETRVG-OBL-010", + "title": "Zustaendigkeit bei konzernweiten IT-Systemen", + "description": "Bei konzernweit eingesetzten IT-Systemen (z.B. M365, SAP) kann nicht der lokale Betriebsrat, sondern der Gesamt- oder Konzernbetriebsrat zustaendig sein (BAG 1 ABR 45/11). Die Zustaendigkeitsabgrenzung ist vor Einfuehrung zu klaeren.", + "applies_when": "IT system deployed across multiple establishments or companies", + "applies_when_condition": { "all_of": [{ "field": "organization.country", "operator": "EQUALS", "value": "DE" }] }, + "legal_basis": [{ "norm": "BetrVG", "article": "§ 50 Abs. 1", "title": "Zustaendigkeit Gesamtbetriebsrat" }, { "norm": "BetrVG", "article": "§ 58 Abs. 1", "title": "Zustaendigkeit Konzernbetriebsrat" }], + "sources": [{ "type": "court_decision", "ref": "BAG 1 ABR 45/11 (SAP ERP)" }, { "type": "court_decision", "ref": "BAG 1 ABR 2/05" }], + "category": "Organisation", + "responsible": "HR / Legal", + "deadline": { "type": "on_event", "event": "Vor Einfuehrung" }, + "sanctions": { "description": "Unwirksamkeit der Vereinbarung bei falschem Verhandlungspartner" }, + "evidence": [{ "name": "Zustaendigkeitsbestimmung dokumentiert", "required": true }], + "priority": "hoch", + "tom_control_ids": [], + "breakpilot_feature": null, + "valid_from": "2012-09-25", + "valid_until": null, + "version": "1.0" + }, + { + "id": "BETRVG-OBL-011", + "title": "Change-Management — erneute Mitbestimmung bei Funktionserweiterungen", + "description": "Neue Module, Funktionen oder Konnektoren in bestehenden IT-Systemen koennen eine erneute Mitbestimmung ausloesen, wenn sie die Ueberwachungseignung aendern oder erweitern (BAG 1 ABR 20/21 — Anwendung, nicht nur Einfuehrung).", + "applies_when": "existing IT system receives feature updates affecting monitoring capability", + "applies_when_condition": { "all_of": [{ "field": "organization.country", "operator": "EQUALS", "value": "DE" }, { "field": "data_types.employee_data", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "BetrVG", "article": "§ 87 Abs. 1 Nr. 6", "title": "Mitbestimmung bei Anwendung (nicht nur Einfuehrung)" }], + "sources": [{ "type": "court_decision", "ref": "BAG 1 ABR 20/21" }], + "category": "Mitbestimmung", + "responsible": "IT-Leitung / HR", + "deadline": { "type": "on_event", "event": "Vor Aktivierung neuer Funktionen" }, + "sanctions": { "description": "Unterlassungsanspruch" }, + "evidence": [{ "name": "Change-Management-Protokoll mit BR-Bewertung", "required": true }], + "priority": "hoch", + "tom_control_ids": [], + "breakpilot_feature": null, + "valid_from": "2022-03-08", + "valid_until": null, + "version": "1.0" + }, + { + "id": "BETRVG-OBL-012", + "title": "Videoueberwachung — Mitbestimmung und Verhaeltnismaessigkeit", + "description": "Videoueberwachung am Arbeitsplatz ist grundsaetzlich mitbestimmungspflichtig. Die Regelungen ueber Einfuehrung und Ausgestaltung beduerfen der Zustimmung des Betriebsrats (BAG 1 ABR 78/11, 1 ABR 21/03).", + "applies_when": "organization uses video surveillance that may capture employees", + "applies_when_condition": { "all_of": [{ "field": "organization.country", "operator": "EQUALS", "value": "DE" }, { "field": "data_protection.video_surveillance", "operator": "EQUALS", "value": true }] }, + "legal_basis": [{ "norm": "BetrVG", "article": "§ 87 Abs. 1 Nr. 6", "title": "Mitbestimmung bei Videoueberwachung" }], + "sources": [{ "type": "court_decision", "ref": "BAG 1 ABR 78/11" }, { "type": "court_decision", "ref": "BAG 1 ABR 21/03" }], + "category": "Mitbestimmung", + "responsible": "Facility Management / HR", + "deadline": { "type": "on_event", "event": "Vor Installation" }, + "sanctions": { "description": "Unterlassungsanspruch, Beweisverwertungsverbot" }, + "evidence": [{ "name": "Betriebsvereinbarung Videoueberwachung", "required": true }, "Beschilderung"], + "priority": "kritisch", + "tom_control_ids": ["TOM.PHY.01"], + "breakpilot_feature": null, + "valid_from": "2004-06-29", + "valid_until": null, + "version": "1.0" + } + ], + "controls": [], + "incident_deadlines": [] +}