feat: Betriebsrats-Compliance — BAG-Ingestion Script + BV-Template

1. BAG-Urteile Ingestion Script (21 kuratierte Urteile zu §87 BetrVG)
   - Microsoft 365, SAP ERP, E-Mail, Standardsoftware, Video, SaaS/Cloud
   - 14 erfolgreich ingestiert (4.726 Chunks in bp_compliance_datenschutz)
2. Betriebsvereinbarung Template (6. Document Template)
   - SQL-Migration mit 13 Sektionen (A-M), ~30 Placeholders
   - Conditional Blocks fuer KI-Systeme, Video, HR
   - Python-Generator mit automatischer TOM-Befuellung

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Benjamin Admin
2026-04-12 10:49:01 +02:00
parent 67ad7c236b
commit b14be8583d
3 changed files with 848 additions and 0 deletions

View File

@@ -0,0 +1,284 @@
"""Ingest BAG (Bundesarbeitsgericht) court decisions into RAG.
Downloads PDFs from bundesarbeitsgericht.de and uploads them to the
bp_compliance_datenschutz Qdrant collection via the RAG-Service API.
These decisions are curated for IT/KI-Mitbestimmung relevance (§87 BetrVG).
Usage:
python scripts/ingest_bag_urteile.py [--rag-url https://macmini:8097] [--dry-run]
"""
import argparse
import json
import os
import re
import sys
import tempfile
import time
import httpx
# ---------------------------------------------------------------------------
# Curated BAG decisions for IT/AI works council co-determination
# ---------------------------------------------------------------------------
BAG_DECISIONS = [
# --- M365 / Copilot / Standardsoftware ---
{
"url": "https://www.bundesarbeitsgericht.de/entscheidung/1-abr-20-21/",
"case_number": "1 ABR 20/21",
"date": "2022-03-08",
"subject": "Microsoft Office 365 — Mitbestimmung",
"keywords": ["Microsoft 365", "Standardsoftware", "Ueberwachung", "§87 BetrVG"],
},
{
"url": "https://www.bundesarbeitsgericht.de/entscheidung/1-abn-36-18/",
"case_number": "1 ABN 36/18",
"date": "2018-10-23",
"subject": "Excel / Standardsoftware — keine Geringfuegigkeitsschwelle",
"keywords": ["Excel", "Standardsoftware", "Geringfuegigkeit", "§87 BetrVG"],
},
{
"url": "https://www.bundesarbeitsgericht.de/entscheidung/1-abr-45-11/",
"case_number": "1 ABR 45/11",
"date": "2012-09-25",
"subject": "SAP ERP im Personalwesen",
"keywords": ["SAP", "ERP", "Personalwesen", "Verhaltenskontrolle", "§87 BetrVG"],
},
{
"url": "https://www.bundesarbeitsgericht.de/entscheidung/1-abr-31-19/",
"case_number": "1 ABR 31/19",
"date": "2021-01-27",
"subject": "E-Mail-Kommunikationssoftware — Mitbestimmung",
"keywords": ["E-Mail", "Kommunikation", "Software", "§87 BetrVG"],
},
{
"url": "https://www.bundesarbeitsgericht.de/entscheidung/1-abr-13-17/",
"case_number": "1 ABR 13/17",
"date": "2019-07-09",
"subject": "IT-System fuer Mitarbeiterbefragung",
"keywords": ["Mitarbeiterbefragung", "Feedback", "technische Einrichtung", "§87 BetrVG"],
},
{
"url": "https://www.bundesarbeitsgericht.de/entscheidung/1-abr-16-23/",
"case_number": "1 ABR 16/23",
"date": "2024-07-16",
"subject": "Headset-System — Geraetenutzungsdaten",
"keywords": ["Headset", "Geraetenutzung", "Ueberwachung", "§87 BetrVG"],
},
# --- Ueberwachung, Social, Drittplattformen ---
{
"url": "https://www.bundesarbeitsgericht.de/entscheidung/1-abr-7-15/",
"case_number": "1 ABR 7/15",
"date": "2016-12-13",
"subject": "Facebook-Seite — indirekte Leistungsueberwachung",
"keywords": ["Facebook", "Social Media", "Besucherbeitraege", "Ueberwachung", "§87 BetrVG"],
},
{
"url": "https://www.bundesarbeitsgericht.de/entscheidung/1-abr-43-12/",
"case_number": "1 ABR 43/12",
"date": "2013-12-10",
"subject": "Google Maps — indirekte Ueberwachung / Definition Ueberwachung",
"keywords": ["Google Maps", "Routenplaner", "indirekte Ueberwachung", "Definition", "§87 BetrVG"],
},
{
"url": "https://www.bundesarbeitsgericht.de/entscheidung/1-abr-68-13/",
"case_number": "1 ABR 68/13",
"date": "2015-07-21",
"subject": "Ueberwachung durch technische Einrichtung eines Dritten (SaaS/Cloud)",
"keywords": ["Drittsystem", "SaaS", "Cloud", "Ueberwachung", "§87 BetrVG"],
},
# --- Video, Belastung, Leistungskennzahlen ---
{
"url": "https://www.bundesarbeitsgericht.de/entscheidung/1-abr-78-11/",
"case_number": "1 ABR 78/11",
"date": "2012-12-11",
"subject": "Videoueberwachung — Grundsatzentscheidung",
"keywords": ["Videoueberwachung", "Kamera", "Arbeitsplatz", "§87 BetrVG"],
},
{
"url": "https://www.bundesarbeitsgericht.de/entscheidung/1-abr-46-15/",
"case_number": "1 ABR 46/15",
"date": "2017-04-25",
"subject": "Belastungsstatistik — dauerhafte Kennzahlenueberwachung",
"keywords": ["Belastungsstatistik", "Kennzahlen", "Analytics", "Persoenlichkeitsrecht", "§87 BetrVG"],
},
# --- Negative / abgrenzende Faelle ---
{
"url": "https://www.bundesarbeitsgericht.de/entscheidung/1-abr-32-16/",
"case_number": "1 ABR 32/16",
"date": "2017-12-19",
"subject": "Anti-Terror-Listen — keine Mitbestimmung",
"keywords": ["Anti-Terror", "Sanktionsliste", "keine Mitbestimmung", "Abgrenzung", "§87 BetrVG"],
},
{
"url": "https://www.bundesarbeitsgericht.de/entscheidung/1-abr-22-21/",
"case_number": "1 ABR 22/21",
"date": "2022-09-13",
"subject": "Elektronische Arbeitszeiterfassung — Initiativrecht",
"keywords": ["Arbeitszeiterfassung", "Initiativrecht", "digitale Systeme", "§87 BetrVG"],
},
# --- Historische Grundsatzentscheidungen ---
{
"url": "https://www.bundesarbeitsgericht.de/entscheidung/1-abr-43-81/",
"case_number": "1 ABR 43/81",
"date": "1983-12-06",
"subject": "Grundsatz technische Ueberwachung — Eignung genuegt",
"keywords": ["Grundsatz", "Eignung", "technische Einrichtung", "§87 BetrVG"],
},
{
"url": "https://www.bundesarbeitsgericht.de/entscheidung/1-abr-23-82/",
"case_number": "1 ABR 23/82",
"date": "1984-09-14",
"subject": "Erste Grundlinie IT-Systeme",
"keywords": ["IT-System", "Grundlinie", "technische Einrichtung", "§87 BetrVG"],
},
# --- E-Mail / Internet ---
{
"url": "https://www.bundesarbeitsgericht.de/entscheidung/1-abr-46-10/",
"case_number": "1 ABR 46/10",
"date": "2012-02-07",
"subject": "Internet- und E-Mail-Nutzung — Kommunikationsdaten",
"keywords": ["Internet", "E-Mail", "Kommunikationsdaten", "Auswertung", "§87 BetrVG"],
},
# --- HR / Bewertungssysteme ---
{
"url": "https://www.bundesarbeitsgericht.de/entscheidung/1-abr-40-07/",
"case_number": "1 ABR 40/07",
"date": "2008-07-22",
"subject": "Beurteilungssysteme — §94/§95 BetrVG",
"keywords": ["Beurteilung", "Bewertungssystem", "HR", "§94 BetrVG", "§95 BetrVG"],
},
{
"url": "https://www.bundesarbeitsgericht.de/entscheidung/1-abr-16-07/",
"case_number": "1 ABR 16/07",
"date": "2008-03-18",
"subject": "Personalfrageboegen — Bewertung",
"keywords": ["Personalfragebogen", "Bewertung", "HR-Tools", "§94 BetrVG"],
},
# --- Video / physische Ueberwachung ---
{
"url": "https://www.bundesarbeitsgericht.de/entscheidung/1-abr-21-03/",
"case_number": "1 ABR 21/03",
"date": "2004-06-29",
"subject": "Videoueberwachung Arbeitsplatz",
"keywords": ["Video", "Kamera", "Arbeitsplatz", "Ueberwachung", "§87 BetrVG"],
},
# --- Zustaendigkeit ---
{
"url": "https://www.bundesarbeitsgericht.de/entscheidung/1-abr-2-05/",
"case_number": "1 ABR 2/05",
"date": "2006-05-03",
"subject": "Zustaendigkeit Betriebsrat bei konzernweiten Tools",
"keywords": ["Zustaendigkeit", "Konzern", "Gesamtbetriebsrat", "§87 BetrVG"],
},
{
"url": "https://www.bundesarbeitsgericht.de/entscheidung/1-abr-58-04/",
"case_number": "1 ABR 58/04",
"date": "2006-03-28",
"subject": "Mitbestimmung bei Einfuehrung technischer Systeme",
"keywords": ["Systemeinführung", "technische Systeme", "Mitbestimmung", "§87 BetrVG"],
},
]
def normalize_case_number(case_number: str) -> str:
"""Normalize case number for use as regulation_id."""
return re.sub(r"[^a-z0-9]", "_", case_number.lower()).strip("_")
def download_decision(url: str, client: httpx.Client) -> bytes:
"""Download a BAG decision page as HTML."""
resp = client.get(url, follow_redirects=True)
resp.raise_for_status()
return resp.content
def upload_to_rag(
file_bytes: bytes,
filename: str,
metadata: dict,
rag_url: str,
client: httpx.Client,
) -> dict:
"""Upload a document to the RAG service."""
files = {"file": (filename, file_bytes, "text/html")}
data = {
"collection": "bp_compliance_datenschutz",
"data_type": "compliance_datenschutz",
"bundesland": "bund",
"use_case": "court_decision",
"year": metadata.get("date", "2024")[:4],
"chunk_strategy": "legal",
"chunk_size": "512",
"chunk_overlap": "50",
"metadata_json": json.dumps(metadata),
}
resp = client.post(f"{rag_url}/api/v1/documents/upload", files=files, data=data)
resp.raise_for_status()
return resp.json()
def main():
parser = argparse.ArgumentParser(description="Ingest BAG court decisions into RAG")
parser.add_argument("--rag-url", default="https://macmini:8097", help="RAG service URL")
parser.add_argument("--dry-run", action="store_true", help="Download only, don't upload")
args = parser.parse_args()
client = httpx.Client(timeout=60, verify=False)
stats = {"downloaded": 0, "uploaded": 0, "errors": 0}
for decision in BAG_DECISIONS:
case_id = normalize_case_number(decision["case_number"])
print(f"\n--- {decision['case_number']}: {decision['subject']} ---")
# Download
try:
html_bytes = download_decision(decision["url"], client)
stats["downloaded"] += 1
print(f" Downloaded: {len(html_bytes)} bytes")
except Exception as e:
print(f" ERROR downloading: {e}")
stats["errors"] += 1
continue
if args.dry_run:
continue
# Upload
metadata = {
"regulation_id": f"bag_{case_id}",
"regulation_name_de": f"BAG {decision['case_number']}{decision['subject']}",
"category": "arbeitsrecht",
"source": "bundesarbeitsgericht.de",
"doc_type": "court_decision",
"license": "public_domain_§5_UrhG",
"court": "BAG",
"case_number": decision["case_number"],
"date": decision["date"],
"subject_matter": decision["subject"],
"keywords": decision["keywords"],
}
try:
result = upload_to_rag(
html_bytes,
f"bag_{case_id}.html",
metadata,
args.rag_url,
client,
)
stats["uploaded"] += 1
print(f" Uploaded: {result.get('chunks_count', '?')} chunks, doc_id={result.get('document_id', '?')}")
except Exception as e:
print(f" ERROR uploading: {e}")
stats["errors"] += 1
time.sleep(1) # Rate limiting
print(f"\n=== Done: {stats['downloaded']} downloaded, {stats['uploaded']} uploaded, {stats['errors']} errors ===")
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,214 @@
"""Betriebsvereinbarung template generator — creates BV draft from UCCA assessment.
Generates a modular works council agreement (Betriebsvereinbarung) based on:
- UCCA Assessment result (triggered rules, risk score, obligations)
- Company profile (name, location, works council)
- System details (name, type, modules)
Sections A-M follow the template in migration 006.
"""
from typing import Optional
# -- Default verbotene Nutzungen nach BAG-Rechtsprechung --------------------
DEFAULT_VERBOTENE_NUTZUNGEN = [
"Verdeckte Leistungs- oder Verhaltenskontrolle einzelner Beschaeftigter",
"Erstellung individueller Persoenlichkeitsprofile oder Verhaltensanalysen",
"Nutzung von Nutzungshistorien zu disziplinarischen Zwecken",
"Automatisierte Personalentscheidungen ohne menschliche Ueberpruefung (Art. 22 DSGVO)",
"Personenbezogene Rankings oder Leistungsvergleiche ohne gesonderte Mitbestimmung",
"Korrelation von Systemnutzungsdaten mit Leistungsbeurteilungen",
]
AI_VERBOTENE_NUTZUNGEN = [
"Einsatz von KI-Funktionen zur biometrischen Echtzeit-Identifizierung am Arbeitsplatz",
"KI-gestuetztes Social Scoring von Beschaeftigten",
"Nutzung von KI-generierten Bewertungen als alleinige Grundlage fuer Personalentscheidungen",
]
# -- Standard-TOM Massnahmen ------------------------------------------------
DEFAULT_TOM = [
"Rollen- und Rechtekonzept mit Least-Privilege-Prinzip",
"Verschluesselung der Daten bei Uebertragung (TLS 1.2+) und Speicherung (AES-256)",
"Protokollierung aller administrativen Zugriffe",
"Pseudonymisierung personenbezogener Daten, wo technisch moeglich",
"Deaktivierung nicht benoetigter Telemetrie- und Diagnosefunktionen",
"Getrennte Umgebungen fuer Test und Produktion",
"Regelmaessige Sicherheitsupdates und Patch-Management",
"Zugangsschutz durch Multi-Faktor-Authentifizierung fuer Administratoren",
]
# -- Standard erlaubte Reports ----------------------------------------------
DEFAULT_ERLAUBTE_REPORTS = [
"Systemgesundheit und Verfuegbarkeit (ohne Personenbezug)",
"Lizenznutzung auf aggregierter Ebene (Abteilung/Standort, nicht Person)",
"Sicherheitsereignisse und Anomalien",
"Speicherplatznutzung (ohne Personenbezug)",
"Fehlerstatistiken (technisch, nicht personenbezogen)",
]
# -- Standard Datenarten bei IT/KI-Systemen ---------------------------------
DATENARTEN_MAP = {
"email": "E-Mail-Metadaten (Absender, Empfaenger, Zeitstempel — NICHT Inhalte)",
"chat": "Chat-/Messaging-Metadaten (Teilnehmer, Zeitstempel)",
"document": "Dokumentenmetadaten (Ersteller, Aenderungsdatum, Dateiname)",
"login": "Anmeldedaten (Benutzername, Zeitstempel, IP-Adresse)",
"usage": "Nutzungsdaten (aufgerufene Funktionen, Nutzungsdauer — aggregiert)",
"prompt": "KI-Eingaben und -Ausgaben (Prompts, Antworten)",
"calendar": "Kalendereintraege (Betreff, Teilnehmer, Zeiten)",
"hr": "Personalstammdaten (Name, Abteilung, Position, Eintrittsdatum)",
"performance": "Leistungsdaten (Kennzahlen, Bewertungen, Zielvereinbarungen)",
"video": "Videoaufnahmen (Arbeitsplatz, Zugangsbereiche)",
"location": "Standortdaten (GPS, WLAN-basierte Ortung, Gebaeudezutritt)",
}
def generate_betriebsvereinbarung_draft(ctx: dict) -> dict:
"""Generate a Betriebsvereinbarung draft from company + assessment context.
Args:
ctx: Dict with keys:
Required:
- company_name: str
- system_name: str
- system_description: str
Optional:
- company_address: str
- employer_representative: str
- works_council_chair: str
- system_vendor: str
- locations: list[str]
- departments: list[str]
- modules: list[str]
- purposes: list[str]
- data_types: list[str] — keys from DATENARTEN_MAP
- is_ai_system: bool
- has_employee_monitoring: bool
- has_hr_features: bool
- has_video: bool
- dpo_name: str
- dpo_contact: str
- audit_interval: str — e.g. "12 Monate"
- duration: str — e.g. "unbefristet"
- notice_period: str — e.g. "3 Monate"
- retention_audit_logs: str — e.g. "90 Tage"
- retention_usage_data: str — e.g. "30 Tage"
- retention_prompts: str — e.g. "deaktiviert"
- additional_forbidden: list[str]
- additional_tom: list[str]
- additional_reports: list[str]
- betrvg_conflict_score: int — 0-100
Returns:
Dict with placeholder values ready for template substitution.
"""
result = {}
# Basic info
result["UNTERNEHMEN_NAME"] = ctx.get("company_name", "{{UNTERNEHMEN_NAME}}")
result["UNTERNEHMEN_SITZ"] = ctx.get("company_address", "{{UNTERNEHMEN_SITZ}}")
result["ARBEITGEBER_VERTRETER"] = ctx.get("employer_representative", "{{ARBEITGEBER_VERTRETER}}")
result["BETRIEBSRAT_VORSITZ"] = ctx.get("works_council_chair", "{{BETRIEBSRAT_VORSITZ}}")
result["SYSTEM_NAME"] = ctx.get("system_name", "{{SYSTEM_NAME}}")
result["SYSTEM_BESCHREIBUNG"] = ctx.get("system_description", "{{SYSTEM_BESCHREIBUNG}}")
result["SYSTEM_HERSTELLER"] = ctx.get("system_vendor", "")
result["DSB_NAME"] = ctx.get("dpo_name", "{{DSB_NAME}}")
result["DSB_KONTAKT"] = ctx.get("dpo_contact", "{{DSB_KONTAKT}}")
# B. Geltungsbereich
locations = ctx.get("locations", [])
result["GELTUNGSBEREICH_STANDORTE"] = _bullet_list(locations) if locations else "Alle Standorte der {{UNTERNEHMEN_NAME}}"
departments = ctx.get("departments", [])
result["GELTUNGSBEREICH_BEREICHE"] = _bullet_list(departments) if departments else "Alle Beschaeftigten"
modules = ctx.get("modules", [])
result["GELTUNGSBEREICH_MODULE"] = _bullet_list(modules) if modules else "Alle Module und Dienste von {{SYSTEM_NAME}}"
# C. Zweck
purposes = ctx.get("purposes", [])
result["ZWECK_BESCHREIBUNG"] = _bullet_list(purposes) if purposes else "{{ZWECK_BESCHREIBUNG}}"
# C.2 Verbotene Nutzungen
forbidden = list(DEFAULT_VERBOTENE_NUTZUNGEN)
if ctx.get("is_ai_system"):
forbidden.extend(AI_VERBOTENE_NUTZUNGEN)
forbidden.extend(ctx.get("additional_forbidden", []))
result["VERBOTENE_NUTZUNGEN"] = _bullet_list(forbidden)
# D. Datenarten
data_type_keys = ctx.get("data_types", [])
datenarten = []
for key in data_type_keys:
if key in DATENARTEN_MAP:
datenarten.append(DATENARTEN_MAP[key])
else:
datenarten.append(key)
result["DATENARTEN_LISTE"] = _bullet_list(datenarten) if datenarten else "{{DATENARTEN_LISTE}}"
# E. Rollen
result["ROLLEN_ADMIN"] = ctx.get("roles_admin", "IT-Administration: Systemkonfiguration, Benutzerverwaltung, Sicherheitsupdates")
result["ROLLEN_FUEHRUNGSKRAFT"] = ctx.get("roles_manager", "Fuehrungskraefte: Nur aggregierte, nicht-personenbezogene Reports")
result["ROLLEN_REPORTING"] = ctx.get("roles_reporting", "Controlling/Reporting: Nur freigegebene Standardreports (siehe Abschnitt G)")
# F. Transparenz
result["TRANSPARENZ_INFO"] = ctx.get("transparency_info",
"Die Information erfolgt schriftlich und in einer Informationsveranstaltung vor Einfuehrung des Systems.")
# G. Reports
reports = list(DEFAULT_ERLAUBTE_REPORTS)
reports.extend(ctx.get("additional_reports", []))
result["ERLAUBTE_REPORTS"] = _bullet_list(reports)
# H. Speicherfristen
result["SPEICHERFRIST_AUDIT_LOGS"] = ctx.get("retention_audit_logs", "90 Tage")
result["SPEICHERFRIST_NUTZUNGSDATEN"] = ctx.get("retention_usage_data", "30 Tage")
result["SPEICHERFRIST_CHAT_PROMPTS"] = ctx.get("retention_prompts", "deaktiviert")
# I. TOM
tom = list(DEFAULT_TOM)
tom.extend(ctx.get("additional_tom", []))
# Intensivere Schutzmassnahmen bei hohem Konflikt-Score
conflict_score = ctx.get("betrvg_conflict_score", 0)
if conflict_score >= 50:
tom.append("Automatische Anomalie-Erkennung bei ungewoehnlichen Admin-Zugriffen")
tom.append("Quartalsweise Datenschutz-Audit durch externen Prueer")
if conflict_score >= 75:
tom.append("Betriebsrat erhaelt Leserechte auf Audit-Log-Dashboard")
tom.append("Jede Sonderauswertung wird dem Betriebsrat innerhalb von 24h gemeldet")
result["TOM_MASSNAHMEN"] = _bullet_list(tom)
# J. Change-Management
result["CHANGE_MANAGEMENT_PROZESS"] = ctx.get("change_process",
"Die Arbeitgeberin informiert den Betriebsrat schriftlich ueber geplante Aenderungen "
"mindestens 14 Kalendertage vor Umsetzung. Bei sicherheitskritischen Updates kann die "
"Frist auf 3 Werktage verkuerzt werden.")
# K. Audit
result["AUDIT_INTERVALL"] = ctx.get("audit_interval", "12 Monate")
# L. Beschwerde
result["BESCHWERDE_ANSPRECHPARTNER"] = ctx.get("complaint_contacts",
"- Direkter Vorgesetzter\n- Betriebsrat ({{BETRIEBSRAT_VORSITZ}})\n"
"- Datenschutzbeauftragter ({{DSB_NAME}}, {{DSB_KONTAKT}})")
# M. Schluss
result["LAUFZEIT"] = ctx.get("duration", "unbefristet")
result["KUENDIGUNGSFRIST"] = ctx.get("notice_period", "3 Monate")
result["DATUM_UNTERZEICHNUNG"] = ctx.get("signing_date", "{{DATUM_UNTERZEICHNUNG}}")
# Conditional flags
result["AI_SYSTEM"] = ctx.get("is_ai_system", False)
result["VIDEO_UEBERWACHUNG"] = ctx.get("has_video", False)
result["HR_SYSTEM"] = ctx.get("has_hr_features", False)
return result
def _bullet_list(items: list) -> str:
"""Format a list as markdown bullet points."""
return "\n".join(f"- {item}" for item in items)

View File

@@ -0,0 +1,350 @@
-- Migration 006: Betriebsvereinbarung Template V1
-- Modulare Vorlage fuer Betriebsvereinbarungen zu KI/IT-Systemen
-- Rechtsgrundlage: §87 Abs.1 Nr.6 BetrVG, DSGVO, BDSG
INSERT INTO compliance.compliance_legal_templates (
tenant_id, document_type, title, description, language, jurisdiction,
version, status, license_name, source_name, attribution_required,
is_complete_document, placeholders, content
) VALUES (
'9282a473-5c95-4b3a-bf78-0ecc0ec71d3e'::uuid,
'betriebsvereinbarung',
'Betriebsvereinbarung — Einfuehrung und Nutzung von KI-/IT-Systemen',
'Modulare Vorlage fuer eine Betriebsvereinbarung gemaess §87 Abs.1 Nr.6 BetrVG zur Einfuehrung und Nutzung von IT-Systemen und KI-Anwendungen. Umfasst Datenschutz, Ueberwachungsschutz, Change-Management und Kontrollrechte des Betriebsrats. Basiert auf BAG-Rechtsprechung zu Microsoft 365, SAP ERP und Standardsoftware.',
'de',
'DE',
'1.0',
'published',
'MIT',
'BreakPilot Compliance',
false,
true,
CAST('[
"{{UNTERNEHMEN_NAME}}",
"{{UNTERNEHMEN_SITZ}}",
"{{ARBEITGEBER_VERTRETER}}",
"{{BETRIEBSRAT_VORSITZ}}",
"{{SYSTEM_NAME}}",
"{{SYSTEM_BESCHREIBUNG}}",
"{{SYSTEM_HERSTELLER}}",
"{{GELTUNGSBEREICH_STANDORTE}}",
"{{GELTUNGSBEREICH_BEREICHE}}",
"{{GELTUNGSBEREICH_MODULE}}",
"{{ZWECK_BESCHREIBUNG}}",
"{{DATENARTEN_LISTE}}",
"{{VERBOTENE_NUTZUNGEN}}",
"{{ROLLEN_ADMIN}}",
"{{ROLLEN_FUEHRUNGSKRAFT}}",
"{{ROLLEN_REPORTING}}",
"{{TRANSPARENZ_INFO}}",
"{{ERLAUBTE_REPORTS}}",
"{{SPEICHERFRIST_AUDIT_LOGS}}",
"{{SPEICHERFRIST_NUTZUNGSDATEN}}",
"{{SPEICHERFRIST_CHAT_PROMPTS}}",
"{{TOM_MASSNAHMEN}}",
"{{CHANGE_MANAGEMENT_PROZESS}}",
"{{AUDIT_INTERVALL}}",
"{{BESCHWERDE_ANSPRECHPARTNER}}",
"{{LAUFZEIT}}",
"{{KUENDIGUNGSFRIST}}",
"{{DATUM_UNTERZEICHNUNG}}",
"{{DSB_NAME}}",
"{{DSB_KONTAKT}}"
]' AS jsonb),
$template$# Betriebsvereinbarung
**ueber die Einfuehrung und Nutzung von {{SYSTEM_NAME}}**
zwischen
**{{UNTERNEHMEN_NAME}}**, {{UNTERNEHMEN_SITZ}},
vertreten durch {{ARBEITGEBER_VERTRETER}}
(nachfolgend "Arbeitgeberin")
und dem
**Betriebsrat** der {{UNTERNEHMEN_NAME}},
vertreten durch den/die Vorsitzende/n {{BETRIEBSRAT_VORSITZ}}
(nachfolgend "Betriebsrat")
---
## A. Praeambel und Rechtsgrundlagen
Diese Betriebsvereinbarung regelt die Einfuehrung und Nutzung von **{{SYSTEM_NAME}}** ({{SYSTEM_BESCHREIBUNG}}) im Betrieb der {{UNTERNEHMEN_NAME}}.
**Rechtsgrundlagen:**
- §87 Abs.1 Nr.6 BetrVG (Mitbestimmung bei technischen Ueberwachungseinrichtungen)
- §90 BetrVG (Unterrichtung bei Planung technischer Anlagen)
- Art. 5, 6, 32 DSGVO (Datenschutzgrundsaetze, Rechtsgrundlage, TOM)
- §26 BDSG (Beschaeftigtendatenschutz)
{{#IF AI_SYSTEM}}
- Verordnung (EU) 2024/1689 (KI-Verordnung / AI Act)
{{/IF}}
Die Parteien sind sich einig, dass {{SYSTEM_NAME}} eine technische Einrichtung im Sinne des §87 Abs.1 Nr.6 BetrVG darstellt, die geeignet ist, das Verhalten oder die Leistung der Beschaeftigten zu ueberwachen. Die Einigung erfolgt in Kenntnis der Rechtsprechung des Bundesarbeitsgerichts (vgl. BAG 1 ABR 20/21 Microsoft Office 365; BAG 1 ABN 36/18 Standardsoftware).
---
## B. Geltungsbereich
### B.1 Raeumlicher Geltungsbereich
Diese Betriebsvereinbarung gilt fuer folgende Standorte:
{{GELTUNGSBEREICH_STANDORTE}}
### B.2 Persoenlicher Geltungsbereich
Die Betriebsvereinbarung gilt fuer alle Beschaeftigten der folgenden Bereiche:
{{GELTUNGSBEREICH_BEREICHE}}
### B.3 Sachlicher Geltungsbereich
Die Betriebsvereinbarung umfasst folgende Module und Dienste des Systems:
{{GELTUNGSBEREICH_MODULE}}
{{#IF SYSTEM_HERSTELLER}}
**Systemhersteller/-anbieter:** {{SYSTEM_HERSTELLER}}
{{/IF}}
---
## C. Zweckbestimmung
### C.1 Erlaubte Nutzungszwecke
{{SYSTEM_NAME}} darf ausschliesslich zu folgenden Zwecken eingesetzt werden:
{{ZWECK_BESCHREIBUNG}}
### C.2 Verbotene Nutzungen
Folgende Nutzungen sind ausdruecklich untersagt:
{{VERBOTENE_NUTZUNGEN}}
Darueber hinaus ist generell untersagt:
- Verdeckte Leistungs- oder Verhaltenskontrolle einzelner Beschaeftigter
- Erstellung individueller Persoenlichkeitsprofile
- Nutzung von Prompt-, Chat- oder Nutzungshistorien zu disziplinarischen Zwecken
- Automatisierte Personalentscheidungen ohne menschliche Ueberpruefung
- Personenbezogene Rankings oder Leistungsvergleiche ohne gesonderte Mitbestimmung
{{#IF AI_SYSTEM}}
- Einsatz von KI-Funktionen zur biometrischen Echtzeit-Identifizierung
- KI-gestuetztes Social Scoring von Beschaeftigten
{{/IF}}
---
## D. Datenarten und Verarbeitungszwecke
### D.1 Verarbeitete Datenarten
Im Rahmen der Nutzung von {{SYSTEM_NAME}} werden folgende Datenarten verarbeitet:
{{DATENARTEN_LISTE}}
### D.2 Rechtsgrundlage
Die Verarbeitung der Beschaeftigtendaten erfolgt auf Grundlage von:
- §26 Abs.1 BDSG i.V.m. Art. 6 Abs.1 lit. b DSGVO (Durchfuehrung des Arbeitsverhaeltnisses)
- §26 Abs.4 BDSG i.V.m. Art. 88 DSGVO (diese Betriebsvereinbarung als Kollektivvereinbarung)
### D.3 Keine Verarbeitung besonderer Kategorien
Daten gemaess Art. 9 DSGVO (Gesundheitsdaten, Gewerkschaftszugehoerigkeit, biometrische Daten etc.) werden nicht verarbeitet, es sei denn, dies ist in einem gesonderten Anhang zu dieser Betriebsvereinbarung ausdruecklich geregelt.
---
## E. Rollen- und Zugriffskonzept
### E.1 Administratoren
{{ROLLEN_ADMIN}}
### E.2 Fuehrungskraefte
{{ROLLEN_FUEHRUNGSKRAFT}}
Fuehrungskraefte erhalten **keinen** Zugriff auf:
- individuelle Nutzungsprotokolle
- Prompt-/Chat-Historien einzelner Beschaeftigter
- Produktivitaetskennzahlen auf Personenebene
### E.3 Reporting-Zugriff
{{ROLLEN_REPORTING}}
### E.4 Vier-Augen-Prinzip
Sonderauswertungen mit Personenbezug beduerfen:
- der Zustimmung des Betriebsrats
- der Beteiligung des Datenschutzbeauftragten ({{DSB_NAME}}, {{DSB_KONTAKT}})
- einer dokumentierten Begruendung
---
## F. Transparenz gegenueber Beschaeftigten
Die Arbeitgeberin informiert alle Beschaeftigten vor Einfuehrung von {{SYSTEM_NAME}} ueber:
{{TRANSPARENZ_INFO}}
Insbesondere:
- Welche Daten verarbeitet werden
- Welche KI-Funktionen aktiviert sind
- Welche Protokollierung stattfindet
- Wer Zugriff auf welche Daten hat
- Wie lange Daten gespeichert werden
- An wen sich Beschaeftigte bei Fragen oder Beschwerden wenden koennen
{{#IF AI_SYSTEM}}
Bei KI-gestuetzten Funktionen wird zusaetzlich transparent gemacht:
- Ob und wie KI-generierte Inhalte gekennzeichnet werden
- Ob Eingaben fuer Modelltraining verwendet werden (Standard: Nein)
- Welche Entscheidungsunterstuetzung die KI leistet
{{/IF}}
---
## G. Auswertungen und Reports
### G.1 Erlaubte Reports
Folgende Auswertungen sind ohne gesonderte Zustimmung zulaessig:
{{ERLAUBTE_REPORTS}}
### G.2 Unzulaessige Reports
Ohne ausdrueckliche, vorherige Zustimmung des Betriebsrats sind unzulaessig:
- individuelle Produktivitaetsreports
- Teamvergleiche mit Personenbezug
- Verhaltensprofile oder Nutzungsmuster einzelner Beschaeftigter
- Rankinglisten (auch anonymisierte, wenn Re-Identifikation moeglich)
- Korrelation von Nutzungsdaten mit Leistungsbeurteilungen
### G.3 Neue Reporttypen
Die Einfuehrung neuer Reporttypen bedarf der vorherigen Zustimmung des Betriebsrats.
---
## H. Speicher- und Loeschfristen
| Datenkategorie | Speicherfrist | Loeschverfahren |
|----------------|---------------|-----------------|
| Audit-/Admin-Logs | {{SPEICHERFRIST_AUDIT_LOGS}} | Automatische Loeschung |
| Nutzungsdaten (aggregiert) | {{SPEICHERFRIST_NUTZUNGSDATEN}} | Automatische Loeschung |
| Prompt-/Chat-Historien | {{SPEICHERFRIST_CHAT_PROMPTS}} | Automatische Loeschung oder deaktiviert |
| Exportdateien | 30 Tage | Automatische Loeschung |
Die Speicherdauer der Audit-Logs orientiert sich am berechtigten Interesse der Arbeitgeberin an der Systemsicherheit und wird auf das erforderliche Minimum begrenzt.
{{#IF AI_SYSTEM}}
**KI-spezifisch:**
- Trainingsdaten aus Beschaeftigten-Interaktionen: **nicht zulaessig** ohne gesonderte Vereinbarung
- Feedback-Daten zur Modellverbesserung: nur anonymisiert und aggregiert
{{/IF}}
---
## I. Technische und organisatorische Massnahmen (TOM)
Zum Schutz der Beschaeftigtendaten werden folgende Massnahmen umgesetzt:
{{TOM_MASSNAHMEN}}
Ergaenzend gelten mindestens:
- Rollen- und Rechtekonzept mit Least-Privilege-Prinzip
- Verschluesselung der Daten bei Uebertragung und Speicherung
- Protokollierung aller administrativen Zugriffe
- Pseudonymisierung, wo technisch moeglich
- Deaktivierung nicht benoetigter Telemetrie- und Diagnosefunktionen
- Getrennte Umgebungen fuer Test und Produktion
---
## J. Change-Management
### J.1 Aenderungspflicht
Folgende Aenderungen an {{SYSTEM_NAME}} beduerfen der vorherigen Information und ggf. erneuten Mitbestimmung des Betriebsrats:
{{CHANGE_MANAGEMENT_PROZESS}}
Insbesondere:
- Aktivierung neuer Module oder Funktionen
- Anbindung neuer Datenquellen oder Konnektoren
- Aenderung der Reporting-Funktionalitaet
- Updates mit neuen KI-Modellen oder -Funktionen
- Aenderung der Datenverarbeitungsstandorte
- Erweiterung des Nutzerkreises
### J.2 Informationsfrist
Die Arbeitgeberin informiert den Betriebsrat mindestens **14 Kalendertage** vor geplanten Aenderungen schriftlich. Bei sicherheitskritischen Updates kann die Frist auf 3 Werktage verkuerzt werden.
### J.3 Bewertungsverfahren
Jede Aenderung wird anhand folgender Kriterien bewertet:
- Aendert sich die Ueberwachungseignung?
- Werden neue Datenarten verarbeitet?
- Aendert sich der Personenbezug?
Bei positiver Beantwortung einer dieser Fragen ist eine erneute Mitbestimmung erforderlich.
---
## K. Kontroll- und Audit-Rechte des Betriebsrats
### K.1 Laufende Kontrolle
Der Betriebsrat hat das Recht auf:
- Einsicht in die Systemdokumentation
- Einsicht in den Katalog aktiver Reports und Auswertungen
- Information ueber alle Administrationszugriffe
- Teilnahme an Schulungen zum System
### K.2 Regelmaessige Reviews
Arbeitgeberin und Betriebsrat fuehren alle **{{AUDIT_INTERVALL}}** einen gemeinsamen Review durch. Gegenstand:
- Aktuelle Nutzung und Funktionsumfang
- Eingehaltene/verletzte Regelungen
- Eingegangene Beschwerden
- Geplante Aenderungen
- Aktualitaet der TOM
### K.3 Anlassbezogene Pruefung
Bei begruendetem Verdacht auf Verstoss gegen diese Betriebsvereinbarung kann der Betriebsrat jederzeit eine Sonderpruefung verlangen. Die Arbeitgeberin stellt innerhalb von 5 Werktagen die angeforderten Informationen bereit.
---
## L. Beschwerden und Eskalation
### L.1 Beschwerderecht
Beschaeftigte koennen sich bei Bedenken hinsichtlich der Datenverarbeitung wenden an:
{{BESCHWERDE_ANSPRECHPARTNER}}
### L.2 Eskalation
Bei Meinungsverschiedenheiten ueber die Auslegung oder Anwendung dieser Betriebsvereinbarung gilt:
1. Gespraech zwischen Arbeitgeberin und Betriebsrat (Frist: 2 Wochen)
2. Hinzuziehung des Datenschutzbeauftragten
3. Einigungsstelle gemaess §76 BetrVG
### L.3 Sofortmassnahmen
Bei schwerwiegenden Verstoessen (insbesondere unzulaessige Ueberwachung, Datenmissbrauch) kann der Betriebsrat die sofortige Aussetzung der betroffenen Funktion verlangen. Die Arbeitgeberin setzt die Funktion bis zur Klaerung aus.
---
## M. Schlussbestimmungen
### M.1 Inkrafttreten und Laufzeit
Diese Betriebsvereinbarung tritt am {{DATUM_UNTERZEICHNUNG}} in Kraft und gilt fuer die Dauer von {{LAUFZEIT}}.
### M.2 Kuendigung
Die Betriebsvereinbarung kann von jeder Seite mit einer Frist von {{KUENDIGUNGSFRIST}} zum Monatsende schriftlich gekuendigt werden.
### M.3 Nachwirkung
Die Betriebsvereinbarung wirkt nach Kuendigung bis zum Abschluss einer neuen Vereinbarung nach (§77 Abs.6 BetrVG).
### M.4 Salvatorische Klausel
Sollten einzelne Bestimmungen unwirksam sein, bleibt die Wirksamkeit der uebrigen Bestimmungen unberuehrt. Die Parteien verpflichten sich, unwirksame Bestimmungen durch wirksame zu ersetzen, die dem wirtschaftlichen Zweck am naechsten kommen.
### M.5 Anlagen
Folgende Anlagen sind Bestandteil dieser Betriebsvereinbarung:
- Anlage 1: Detaillierte Systemdokumentation
- Anlage 2: Rollen- und Rechtekonzept
- Anlage 3: TOM-Dokumentation
- Anlage 4: Reportkatalog
{{#IF AI_SYSTEM}}
- Anlage 5: KI-Transparenzbericht
{{/IF}}
---
**{{UNTERNEHMEN_SITZ}}, den {{DATUM_UNTERZEICHNUNG}}**
| | |
|---|---|
| _________________________ | _________________________ |
| {{ARBEITGEBER_VERTRETER}} | {{BETRIEBSRAT_VORSITZ}} |
| fuer die Arbeitgeberin | fuer den Betriebsrat |
$template$
) ON CONFLICT DO NOTHING;