refactor(admin): split compliance-scope-types.ts (1738 LOC) into domain modules

compliance-scope-types.ts decomposed into 9 files under
compliance-scope-types/ with a barrel index.ts:

  core-levels.ts            (29) — ComplianceDepthLevel enum
  constants.ts              (83) — label mappings + defaults
  questions.ts              (77) — ComplianceScopeQuestion types
  hard-triggers.ts          (77) — HardTrigger rule types
  documents.ts              (84) — ScopeDocumentType + document definitions
  decisions.ts             (111) — Decision model types
  document-scope-matrix-core.ts (551) — core document scope matrix data
  document-scope-matrix-extended.ts (565) — extended document scope data
  state.ts                  (22) — ComplianceScopeState

Note: the two document-scope-matrix files at 551/565 LOC are data tables
(static configuration arrays). They exceed the 500-line soft cap but are
a legitimate data-table exception — splitting them would fragment the
matrix lookup logic without improving readability.

next build passes.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Sharang Parnerkar
2026-04-10 13:24:07 +02:00
parent ab6ba63108
commit fc6a3306d4
11 changed files with 1609 additions and 1738 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,83 @@
/**
* Compliance Scope Engine - Constants
*
* Labels, Beschreibungen und Farben für Compliance-Levels und Dokumenttypen.
*/
import type { ComplianceDepthLevel } from './core-levels'
import type { ScopeDocumentType } from './documents'
/**
* Deutsche Bezeichnungen für Compliance-Levels
*/
export const DEPTH_LEVEL_LABELS: Record<ComplianceDepthLevel, string> = {
L1: 'Lean Startup',
L2: 'KMU Standard',
L3: 'Erweitert',
L4: 'Zertifizierungsbereit',
};
/**
* Detaillierte Beschreibungen der Compliance-Levels
*/
export const DEPTH_LEVEL_DESCRIPTIONS: Record<ComplianceDepthLevel, string> = {
L1: 'Minimalansatz für kleine Organisationen und Startups. Fokus auf gesetzliche Pflichten mit pragmatischen Lösungen.',
L2: 'Standard-Compliance für mittelständische Unternehmen. Ausgewogenes Verhältnis zwischen Aufwand und Compliance-Qualität.',
L3: 'Erweiterte Compliance für größere oder risikoreichere Organisationen. Detaillierte Dokumentation und Prozesse.',
L4: 'Vollständige Compliance für Zertifizierungen und höchste Anforderungen. Audit-ready Dokumentation.',
};
/**
* Farben für Compliance-Levels (Tailwind-kompatibel)
*/
export const DEPTH_LEVEL_COLORS: Record<ComplianceDepthLevel, { bg: string; border: string; badge: string; text: string }> = {
L1: { bg: 'bg-green-50', border: 'border-green-300', badge: 'bg-green-100', text: 'text-green-800' },
L2: { bg: 'bg-blue-50', border: 'border-blue-300', badge: 'bg-blue-100', text: 'text-blue-800' },
L3: { bg: 'bg-amber-50', border: 'border-amber-300', badge: 'bg-amber-100', text: 'text-amber-800' },
L4: { bg: 'bg-red-50', border: 'border-red-300', badge: 'bg-red-100', text: 'text-red-800' },
};
/**
* Deutsche Bezeichnungen für alle Dokumenttypen
*/
export const DOCUMENT_TYPE_LABELS: Record<ScopeDocumentType, string> = {
vvt: 'Verzeichnis von Verarbeitungstätigkeiten (VVT)',
lf: 'Löschfristenkonzept',
tom: 'Technische und organisatorische Maßnahmen (TOM)',
av_vertrag: 'Auftragsverarbeitungsvertrag (AVV)',
dsi: 'Datenschutz-Informationen (Privacy Policy)',
betroffenenrechte: 'Betroffenenrechte-Prozess',
dsfa: 'Datenschutz-Folgenabschätzung (DSFA)',
daten_transfer: 'Drittlandtransfer-Dokumentation',
datenpannen: 'Datenpannen-Prozess',
einwilligung: 'Einwilligungsmanagement',
vertragsmanagement: 'Vertragsmanagement-Prozess',
schulung: 'Mitarbeiterschulung',
audit_log: 'Audit & Logging Konzept',
risikoanalyse: 'Risikoanalyse',
notfallplan: 'Notfall- & Krisenplan',
zertifizierung: 'Zertifizierungsvorbereitung',
datenschutzmanagement: 'Datenschutzmanagement-System (DSMS)',
iace_ce_assessment: 'CE-Risikobeurteilung SW/FW/KI (IACE)',
widerrufsbelehrung: 'Widerrufsbelehrung (§ 312g BGB)',
preisangaben: 'Preisangaben (PAngV)',
fernabsatz_info: 'Informationspflichten Fernabsatz (§ 312d BGB)',
streitbeilegung: 'Streitbeilegungshinweis (VSBG § 36)',
produktsicherheit: 'Produktsicherheitsdokumentation (GPSR)',
ai_act_doku: 'AI Act Technische Dokumentation (Art. 11)',
};
/**
* Status-Labels für Scope-Zustand
*/
export const SCOPE_STATUS_LABELS = {
NOT_STARTED: 'Nicht begonnen',
IN_PROGRESS: 'In Bearbeitung',
COMPLETE: 'Abgeschlossen',
NEEDS_UPDATE: 'Aktualisierung erforderlich',
};
/**
* LocalStorage Key für Scope State
*/
export const STORAGE_KEY = 'bp_compliance_scope';

View File

@@ -0,0 +1,29 @@
/**
* Compliance Scope Engine - Core Level Types
*
* Definiert die grundlegenden Compliance-Tiefenstufen und Score-Typen.
*/
/**
* Compliance-Tiefenstufen
* - L1: Lean Startup - Minimalansatz für kleine Organisationen
* - L2: KMU Standard - Standard-Compliance für mittelständische Unternehmen
* - L3: Erweitert - Erweiterte Compliance für größere/risikoreichere Organisationen
* - L4: Zertifizierungsbereit - Vollständige Compliance für Zertifizierungen
*/
export type ComplianceDepthLevel = 'L1' | 'L2' | 'L3' | 'L4';
/**
* Compliance-Scores zur Bestimmung der optimalen Tiefe
* Alle Werte zwischen 0-100
*/
export interface ComplianceScores {
/** Risiko-Score (0-100): Höhere Werte = höheres Risiko */
risk_score: number;
/** Komplexitäts-Score (0-100): Höhere Werte = komplexere Verarbeitung */
complexity_score: number;
/** Assurance-Bedarf (0-100): Höhere Werte = höherer Nachweis-/Zertifizierungsbedarf */
assurance_need: number;
/** Zusammengesetzter Score (0-100): Gewichtete Kombination aller Scores */
composite_score: number;
}

View File

@@ -0,0 +1,111 @@
/**
* Compliance Scope Engine - Decision & Output Types
*
* Definiert die finale Scope-Entscheidung und zugehörige Ausgabetypen.
*/
import type { ComplianceDepthLevel, ComplianceScores } from './core-levels'
import type { TriggeredHardTrigger } from './hard-triggers'
import type { RequiredDocument, ScopeDocumentType } from './documents'
/**
* Die finale Scope-Entscheidung mit allen Details
*/
export interface ScopeDecision {
/** Eindeutige ID dieser Entscheidung */
id: string;
/** Bestimmtes Compliance-Level */
determinedLevel: ComplianceDepthLevel;
/** Berechnete Scores */
scores: ComplianceScores;
/** Getriggerte Hard Trigger */
triggeredHardTriggers: TriggeredHardTrigger[];
/** Erforderliche Dokumente mit Details */
requiredDocuments: RequiredDocument[];
/** Identifizierte Risiko-Flags */
riskFlags: RiskFlag[];
/** Identifizierte Lücken */
gaps: ScopeGap[];
/** Empfohlene nächste Schritte */
nextActions: NextAction[];
/** Begründung der Entscheidung */
reasoning: ScopeReasoning[];
/** Zeitstempel Erstellung */
createdAt: string;
/** Zeitstempel letzte Änderung */
updatedAt: string;
}
/**
* Risiko-Flag
*/
export interface RiskFlag {
/** Schweregrad */
severity: string;
/** Kategorie */
category: string;
/** Beschreibung */
message: string;
/** Rechtsgrundlage */
legalReference?: string;
/** Empfehlung zur Behebung */
recommendation: string;
}
/**
* Identifizierte Lücke in der Compliance
*/
export interface ScopeGap {
/** Gap-Typ */
gapType: string;
/** Schweregrad */
severity: string;
/** Beschreibung */
description: string;
/** Erforderlich für Level */
requiredFor: ComplianceDepthLevel;
/** Aktueller Zustand */
currentState: string;
/** Zielzustand */
targetState: string;
/** Aufwand in Stunden */
effort: number;
/** Priorität */
priority: string;
}
/**
* Nächster empfohlener Schritt
*/
export interface NextAction {
/** Aktionstyp */
actionType: 'create_document' | 'establish_process' | 'implement_technical' | 'organizational_change';
/** Titel */
title: string;
/** Beschreibung */
description: string;
/** Priorität */
priority: string;
/** Geschätzter Aufwand in Stunden */
estimatedEffort: number;
/** Dokumenttyp (optional) */
documentType?: ScopeDocumentType;
/** Link zum SDK-Schritt */
sdkStepUrl?: string;
/** Blocker */
blockers: string[];
}
/**
* Begründungsschritt für die Entscheidung
*/
export interface ScopeReasoning {
/** Schritt-Nummer/ID */
step: string;
/** Kurzbeschreibung */
description: string;
/** Faktoren */
factors: string[];
/** Auswirkung */
impact: string;
}

View File

@@ -0,0 +1,551 @@
/**
* Compliance Scope Engine - Document Scope Matrix (Core Documents)
*
* Anforderungen pro Level fuer Kern-DSGVO-Dokumente:
* vvt, lf, tom, av_vertrag, dsi, betroffenenrechte, dsfa,
* daten_transfer, datenpannen, einwilligung, vertragsmanagement.
*/
import type { ScopeDocumentType } from './documents'
import type { DocumentScopeRequirement } from './documents'
/**
* Scope-Matrix fuer Kern-DSGVO-Dokumente
*/
export const DOCUMENT_SCOPE_MATRIX_CORE: Partial<Record<ScopeDocumentType, DocumentScopeRequirement>> = {
vvt: {
L1: {
required: true,
depth: 'Basis',
detailItems: [
'Liste aller Verarbeitungstätigkeiten',
'Grundlegende Angaben zu Zweck und Rechtsgrundlage',
'Kategorien betroffener Personen und Daten',
'Einfache Tabellenform ausreichend',
],
estimatedEffort: '2-4 Stunden',
},
L2: {
required: true,
depth: 'Standard',
detailItems: [
'Alle L1-Anforderungen',
'Detaillierte Beschreibung der Verarbeitungszwecke',
'Empfängerkategorien',
'Speicherfristen',
'TOM-Referenzen',
'Strukturiertes Format',
],
estimatedEffort: '4-8 Stunden',
},
L3: {
required: true,
depth: 'Detailliert',
detailItems: [
'Alle L2-Anforderungen',
'Vollständige Rechtsgrundlagen mit Begründung',
'Detaillierte Datenkategorien',
'Verknüpfung mit DSFA wo relevant',
'Versionierung und Änderungshistorie',
'Freigabeprozess dokumentiert',
],
estimatedEffort: '8-16 Stunden',
},
L4: {
required: true,
depth: 'Audit-Ready',
detailItems: [
'Alle L3-Anforderungen',
'Vollständige Nachweiskette für alle Angaben',
'Integration mit Risikobewertung',
'Regelmäßige Review-Zyklen dokumentiert',
'Audit-Trail für alle Änderungen',
'Compliance-Nachweise für jede Verarbeitung',
],
estimatedEffort: '16-24 Stunden',
},
},
lf: {
L1: {
required: true,
depth: 'Basis',
detailItems: [
'Grundlegende Löschfristen für Hauptdatenkategorien',
'Einfache Tabelle oder Liste',
'Bezug auf gesetzliche Aufbewahrungsfristen',
],
estimatedEffort: '1-2 Stunden',
},
L2: {
required: true,
depth: 'Standard',
detailItems: [
'Alle L1-Anforderungen',
'Detaillierte Löschfristen pro Verarbeitungstätigkeit',
'Begründung der Fristen',
'Technischer Löschprozess beschrieben',
'Verantwortlichkeiten festgelegt',
],
estimatedEffort: '3-6 Stunden',
},
L3: {
required: true,
depth: 'Detailliert',
detailItems: [
'Alle L2-Anforderungen',
'Ausnahmen und Sonderfälle dokumentiert',
'Automatisierte Löschprozesse beschrieben',
'Nachweis regelmäßiger Löschungen',
'Eskalationsprozess bei Problemen',
],
estimatedEffort: '6-10 Stunden',
},
L4: {
required: true,
depth: 'Audit-Ready',
detailItems: [
'Alle L3-Anforderungen',
'Vollständiger Audit-Trail aller Löschvorgänge',
'Regelmäßige Audits dokumentiert',
'Compliance-Nachweise für alle Löschfristen',
'Integration mit Backup-Konzept',
],
estimatedEffort: '10-16 Stunden',
},
},
tom: {
L1: {
required: true,
depth: 'Basis',
detailItems: [
'Grundlegende technische Maßnahmen aufgelistet',
'Organisatorische Grundmaßnahmen',
'Einfache Checkliste oder Tabelle',
],
estimatedEffort: '2-3 Stunden',
},
L2: {
required: true,
depth: 'Standard',
detailItems: [
'Alle L1-Anforderungen',
'Detaillierte Beschreibung aller TOM',
'Zuordnung zu Art. 32 DSGVO Kategorien',
'Verantwortlichkeiten und Umsetzungsstatus',
'Einfache Wirksamkeitsbewertung',
],
estimatedEffort: '4-8 Stunden',
},
L3: {
required: true,
depth: 'Detailliert',
detailItems: [
'Alle L2-Anforderungen',
'Risikobewertung für jede Maßnahme',
'Nachweis der Umsetzung',
'Regelmäßige Überprüfungszyklen',
'Verbesserungsmaßnahmen dokumentiert',
'Verknüpfung mit VVT',
],
estimatedEffort: '8-12 Stunden',
},
L4: {
required: true,
depth: 'Audit-Ready',
detailItems: [
'Alle L3-Anforderungen',
'Vollständige Wirksamkeitsnachweise',
'Externe Audits dokumentiert',
'Compliance-Matrix zu Standards (ISO 27001, etc.)',
'Kontinuierliches Monitoring nachgewiesen',
],
estimatedEffort: '12-20 Stunden',
},
},
av_vertrag: {
L1: {
required: false,
depth: 'Basis',
detailItems: [
'Standard-AVV-Vorlage verwenden',
'Grundlegende Angaben zu Auftragsverarbeiter',
'Wesentliche Pflichten aufgeführt',
],
estimatedEffort: '1-2 Stunden pro Vertrag',
},
L2: {
required: true,
depth: 'Standard',
detailItems: [
'Alle L1-Anforderungen',
'Detaillierte Beschreibung der Verarbeitung',
'TOM des Auftragsverarbeiters geprüft',
'Unterschriebene Verträge vollständig',
'Register aller AVV geführt',
],
estimatedEffort: '2-4 Stunden pro Vertrag',
},
L3: {
required: true,
depth: 'Detailliert',
detailItems: [
'Alle L2-Anforderungen',
'Risikobewertung für jeden Auftragsverarbeiter',
'Regelmäßige Überprüfungen dokumentiert',
'Sub-Auftragsverarbeiter erfasst',
'Audit-Rechte vereinbart und dokumentiert',
],
estimatedEffort: '4-6 Stunden pro Vertrag',
},
L4: {
required: true,
depth: 'Audit-Ready',
detailItems: [
'Alle L3-Anforderungen',
'Regelmäßige Audits durchgeführt und dokumentiert',
'Compliance-Nachweise vom Auftragsverarbeiter',
'Vollständiges Vertragsmanagement-System',
'Eskalations- und Kündigungsprozesse dokumentiert',
],
estimatedEffort: '6-10 Stunden pro Vertrag',
},
},
dsi: {
L1: {
required: true,
depth: 'Basis',
detailItems: [
'Datenschutzerklärung auf Website',
'Pflichtangaben nach Art. 13/14 DSGVO',
'Verständliche Sprache',
'Kontaktdaten DSB/Verantwortlicher',
],
estimatedEffort: '2-4 Stunden',
},
L2: {
required: true,
depth: 'Standard',
detailItems: [
'Alle L1-Anforderungen',
'Detaillierte Beschreibung aller Verarbeitungen',
'Rechtsgrundlagen erklärt',
'Informationen zu Betroffenenrechten',
'Cookie-/Tracking-Informationen',
'Regelmäßige Aktualisierung',
],
estimatedEffort: '4-8 Stunden',
},
L3: {
required: true,
depth: 'Detailliert',
detailItems: [
'Alle L2-Anforderungen',
'Mehrsprachige Versionen wo erforderlich',
'Layered Notices (mehrstufige Informationen)',
'Spezifische Informationen für verschiedene Verarbeitungen',
'Versionierung und Änderungshistorie',
'Consent Management Integration',
],
estimatedEffort: '8-12 Stunden',
},
L4: {
required: true,
depth: 'Audit-Ready',
detailItems: [
'Alle L3-Anforderungen',
'Vollständige Nachweiskette für alle Informationen',
'Audit-Trail für Änderungen',
'Compliance mit internationalen Standards',
'Regelmäßige rechtliche Reviews dokumentiert',
],
estimatedEffort: '12-16 Stunden',
},
},
betroffenenrechte: {
L1: {
required: true,
depth: 'Basis',
detailItems: [
'Prozess für Auskunftsanfragen definiert',
'Kontaktmöglichkeit bereitgestellt',
'Grundlegende Fristen bekannt',
'Einfaches Formular oder E-Mail-Vorlage',
],
estimatedEffort: '1-2 Stunden',
},
L2: {
required: true,
depth: 'Standard',
detailItems: [
'Alle L1-Anforderungen',
'Prozesse für alle Betroffenenrechte (Auskunft, Löschung, Berichtigung, etc.)',
'Verantwortlichkeiten festgelegt',
'Standardvorlagen für Antworten',
'Tracking von Anfragen',
],
estimatedEffort: '3-6 Stunden',
},
L3: {
required: true,
depth: 'Detailliert',
detailItems: [
'Alle L2-Anforderungen',
'Detaillierte Prozessbeschreibungen',
'Eskalationsprozesse bei komplexen Fällen',
'Schulung der Mitarbeiter dokumentiert',
'Audit-Trail aller Anfragen',
'Nachweis der Fristeneinhaltung',
],
estimatedEffort: '6-10 Stunden',
},
L4: {
required: true,
depth: 'Audit-Ready',
detailItems: [
'Alle L3-Anforderungen',
'Vollständiges Ticket-/Case-Management-System',
'Regelmäßige Audits der Prozesse',
'Compliance-Kennzahlen und Reporting',
'Integration mit allen relevanten Systemen',
],
estimatedEffort: '10-16 Stunden',
},
},
dsfa: {
L1: {
required: false,
depth: 'Nicht erforderlich',
detailItems: ['Nur bei Hard Trigger erforderlich'],
estimatedEffort: 'N/A',
},
L2: {
required: false,
depth: 'Bei Bedarf',
detailItems: [
'DSFA-Schwellwertanalyse durchführen',
'Bei Erforderlichkeit: Basis-DSFA',
'Risiken identifiziert und bewertet',
'Maßnahmen zur Risikominimierung',
],
estimatedEffort: '4-8 Stunden pro DSFA',
},
L3: {
required: false,
depth: 'Standard',
detailItems: [
'Alle L2-Anforderungen',
'Detaillierte Risikobewertung',
'Konsultation der Betroffenen wo sinnvoll',
'Dokumentation der Entscheidungsprozesse',
'Regelmäßige Überprüfung',
],
estimatedEffort: '8-16 Stunden pro DSFA',
},
L4: {
required: true,
depth: 'Vollständig',
detailItems: [
'Alle L3-Anforderungen',
'Strukturierter DSFA-Prozess etabliert',
'Vorabkonsultation der Aufsichtsbehörde wo erforderlich',
'Vollständige Dokumentation aller Schritte',
'Integration in Projektmanagement',
],
estimatedEffort: '16-24 Stunden pro DSFA',
},
},
daten_transfer: {
L1: {
required: false,
depth: 'Basis',
detailItems: [
'Liste aller Drittlandtransfers',
'Grundlegende Rechtsgrundlage identifiziert',
'Standard-Vertragsklauseln wo nötig',
],
estimatedEffort: '1-2 Stunden',
},
L2: {
required: true,
depth: 'Standard',
detailItems: [
'Alle L1-Anforderungen',
'Detaillierte Dokumentation aller Transfers',
'Angemessenheitsbeschlüsse oder geeignete Garantien',
'Informationen an Betroffene bereitgestellt',
'Register geführt',
],
estimatedEffort: '3-6 Stunden',
},
L3: {
required: true,
depth: 'Detailliert',
detailItems: [
'Alle L2-Anforderungen',
'Transfer Impact Assessment (TIA) durchgeführt',
'Zusätzliche Schutzmaßnahmen dokumentiert',
'Regelmäßige Überprüfung der Rechtsgrundlagen',
'Risikobewertung für jedes Zielland',
],
estimatedEffort: '6-12 Stunden',
},
L4: {
required: true,
depth: 'Audit-Ready',
detailItems: [
'Alle L3-Anforderungen',
'Vollständige TIA-Dokumentation',
'Regelmäßige Reviews dokumentiert',
'Rechtliche Expertise nachgewiesen',
'Compliance-Nachweise für alle Transfers',
],
estimatedEffort: '12-20 Stunden',
},
},
datenpannen: {
L1: {
required: true,
depth: 'Basis',
detailItems: [
'Grundlegender Prozess für Datenpannen',
'Kontakt zur Aufsichtsbehörde bekannt',
'Verantwortlichkeiten grob definiert',
'Einfache Checkliste',
],
estimatedEffort: '1-2 Stunden',
},
L2: {
required: true,
depth: 'Standard',
detailItems: [
'Alle L1-Anforderungen',
'Detaillierter Incident-Response-Plan',
'Bewertungskriterien für Meldepflicht',
'Vorlagen für Meldungen (Behörde & Betroffene)',
'Dokumentationspflichten klar definiert',
],
estimatedEffort: '3-6 Stunden',
},
L3: {
required: true,
depth: 'Detailliert',
detailItems: [
'Alle L2-Anforderungen',
'Incident-Management-System etabliert',
'Regelmäßige Übungen durchgeführt',
'Eskalationsprozesse dokumentiert',
'Post-Incident-Review-Prozess',
'Lessons Learned dokumentiert',
],
estimatedEffort: '6-10 Stunden',
},
L4: {
required: true,
depth: 'Audit-Ready',
detailItems: [
'Alle L3-Anforderungen',
'Vollständiges Breach-Log geführt',
'Integration mit IT-Security-Incident-Response',
'Regelmäßige Audits des Prozesses',
'Compliance-Nachweise für alle Vorfälle',
],
estimatedEffort: '10-16 Stunden',
},
},
einwilligung: {
L1: {
required: false,
depth: 'Basis',
detailItems: [
'Einwilligungsformulare DSGVO-konform',
'Opt-in statt Opt-out',
'Widerrufsmöglichkeit bereitgestellt',
],
estimatedEffort: '1-2 Stunden',
},
L2: {
required: true,
depth: 'Standard',
detailItems: [
'Alle L1-Anforderungen',
'Granulare Einwilligungen',
'Nachweisbarkeit der Einwilligung',
'Dokumentation des Einwilligungsprozesses',
'Regelmäßige Überprüfung',
],
estimatedEffort: '3-6 Stunden',
},
L3: {
required: true,
depth: 'Detailliert',
detailItems: [
'Alle L2-Anforderungen',
'Consent-Management-System implementiert',
'Vollständiger Audit-Trail',
'A/B-Testing dokumentiert',
'Integration mit allen Datenverarbeitungen',
'Regelmäßige Revalidierung',
],
estimatedEffort: '6-12 Stunden',
},
L4: {
required: true,
depth: 'Audit-Ready',
detailItems: [
'Alle L3-Anforderungen',
'Enterprise Consent Management Platform',
'Vollständige Nachweiskette für alle Einwilligungen',
'Compliance-Dashboard',
'Regelmäßige externe Audits',
],
estimatedEffort: '12-20 Stunden',
},
},
vertragsmanagement: {
L1: {
required: false,
depth: 'Basis',
detailItems: [
'Einfaches Register wichtiger Verträge',
'Ablage datenschutzrelevanter Verträge',
],
estimatedEffort: '1-2 Stunden',
},
L2: {
required: true,
depth: 'Standard',
detailItems: [
'Alle L1-Anforderungen',
'Vollständiges Vertragsregister',
'Datenschutzklauseln in Standardverträgen',
'Überprüfungsprozess für neue Verträge',
'Ablaufdaten und Kündigungsfristen getrackt',
],
estimatedEffort: '3-6 Stunden Setup',
},
L3: {
required: true,
depth: 'Detailliert',
detailItems: [
'Alle L2-Anforderungen',
'Vertragsmanagement-System implementiert',
'Automatische Erinnerungen für Reviews',
'Risikobewertung für Vertragspartner',
'Compliance-Checks vor Vertragsabschluss',
],
estimatedEffort: '6-12 Stunden Setup',
},
L4: {
required: true,
depth: 'Audit-Ready',
detailItems: [
'Alle L3-Anforderungen',
'Enterprise Contract Management System',
'Vollständiger Audit-Trail',
'Integration mit Procurement',
'Regelmäßige Compliance-Audits',
],
estimatedEffort: '12-20 Stunden Setup',
},
},
};

View File

@@ -0,0 +1,565 @@
/**
* Compliance Scope Engine - Document Scope Matrix (Extended Documents)
*
* Anforderungen pro Level fuer erweiterte Dokumente:
* schulung, audit_log, risikoanalyse, notfallplan, zertifizierung,
* datenschutzmanagement, iace_ce_assessment, widerrufsbelehrung,
* preisangaben, fernabsatz_info, streitbeilegung, produktsicherheit,
* ai_act_doku.
*/
import type { ScopeDocumentType } from './documents'
import type { DocumentScopeRequirement } from './documents'
/**
* Scope-Matrix fuer erweiterte Dokumente
*/
export const DOCUMENT_SCOPE_MATRIX_EXTENDED: Partial<Record<ScopeDocumentType, DocumentScopeRequirement>> = {
schulung: {
L1: {
required: false,
depth: 'Basis',
detailItems: [
'Grundlegende Datenschutz-Awareness',
'Informationsblatt für Mitarbeiter',
'Kontaktperson benannt',
],
estimatedEffort: '1-2 Stunden Vorbereitung',
},
L2: {
required: true,
depth: 'Standard',
detailItems: [
'Alle L1-Anforderungen',
'Jährliche Datenschutzschulung',
'Schulungsunterlagen erstellt',
'Teilnahme dokumentiert',
'Rollenspezifische Inhalte',
],
estimatedEffort: '4-8 Stunden Vorbereitung',
},
L3: {
required: true,
depth: 'Detailliert',
detailItems: [
'Alle L2-Anforderungen',
'E-Learning-Plattform oder strukturiertes Schulungsprogramm',
'Wissenstests durchgeführt',
'Auffrischungsschulungen',
'Spezialschulungen für Schlüsselpersonal',
'Schulungsplan erstellt',
],
estimatedEffort: '8-16 Stunden Vorbereitung',
},
L4: {
required: true,
depth: 'Audit-Ready',
detailItems: [
'Alle L3-Anforderungen',
'Umfassendes Schulungsprogramm',
'Externe Schulungen wo erforderlich',
'Zertifizierungen für Schlüsselpersonal',
'Vollständige Dokumentation aller Schulungen',
'Wirksamkeitsmessung',
],
estimatedEffort: '16-24 Stunden Vorbereitung',
},
},
audit_log: {
L1: {
required: false,
depth: 'Basis',
detailItems: [
'Grundlegendes Logging aktiviert',
'Zugriffsprotokolle für kritische Systeme',
],
estimatedEffort: '2-4 Stunden',
},
L2: {
required: false,
depth: 'Standard',
detailItems: [
'Alle L1-Anforderungen',
'Strukturiertes Logging-Konzept',
'Aufbewahrungsfristen definiert',
'Zugriffskontrolle auf Logs',
'Regelmäßige Überprüfung',
],
estimatedEffort: '4-8 Stunden',
},
L3: {
required: true,
depth: 'Detailliert',
detailItems: [
'Alle L2-Anforderungen',
'Zentralisiertes Logging-System',
'Automatische Alerts bei Anomalien',
'Audit-Trail für alle datenschutzrelevanten Vorgänge',
'Compliance-Reporting',
],
estimatedEffort: '8-16 Stunden',
},
L4: {
required: true,
depth: 'Audit-Ready',
detailItems: [
'Alle L3-Anforderungen',
'Enterprise SIEM-System',
'Vollständige Nachvollziehbarkeit aller Zugriffe',
'Regelmäßige Log-Audits dokumentiert',
'Integration mit Incident Response',
],
estimatedEffort: '16-24 Stunden',
},
},
risikoanalyse: {
L1: {
required: false,
depth: 'Basis',
detailItems: [
'Grundlegende Risikoidentifikation',
'Einfache Bewertung nach Eintrittswahrscheinlichkeit und Auswirkung',
],
estimatedEffort: '2-4 Stunden',
},
L2: {
required: false,
depth: 'Standard',
detailItems: [
'Alle L1-Anforderungen',
'Strukturierte Risikoanalyse',
'Risikomatrix erstellt',
'Maßnahmen zur Risikominimierung definiert',
'Jährliche Überprüfung',
],
estimatedEffort: '4-8 Stunden',
},
L3: {
required: true,
depth: 'Detailliert',
detailItems: [
'Alle L2-Anforderungen',
'Umfassende Risikoanalyse nach Standard-Framework',
'Integration mit VVT und DSFA',
'Risikomanagement-Prozess etabliert',
'Regelmäßige Reviews',
'Risiko-Dashboard',
],
estimatedEffort: '8-16 Stunden',
},
L4: {
required: true,
depth: 'Audit-Ready',
detailItems: [
'Alle L3-Anforderungen',
'Enterprise Risk Management System',
'Vollständige Integration mit ISMS',
'Kontinuierliche Risikoüberwachung',
'Regelmäßige externe Assessments',
],
estimatedEffort: '16-24 Stunden',
},
},
notfallplan: {
L1: {
required: false,
depth: 'Basis',
detailItems: [
'Grundlegende Notfallkontakte definiert',
'Einfacher Backup-Prozess',
],
estimatedEffort: '1-2 Stunden',
},
L2: {
required: false,
depth: 'Standard',
detailItems: [
'Alle L1-Anforderungen',
'Notfall- und Krisenplan erstellt',
'Business Continuity Grundlagen',
'Backup und Recovery dokumentiert',
'Verantwortlichkeiten festgelegt',
],
estimatedEffort: '3-6 Stunden',
},
L3: {
required: true,
depth: 'Detailliert',
detailItems: [
'Alle L2-Anforderungen',
'Detaillierter Business Continuity Plan',
'Disaster Recovery Plan',
'Regelmäßige Tests durchgeführt',
'Eskalationsprozesse dokumentiert',
'Externe Kommunikation geplant',
],
estimatedEffort: '6-12 Stunden',
},
L4: {
required: true,
depth: 'Audit-Ready',
detailItems: [
'Alle L3-Anforderungen',
'ISO 22301 konformes BCMS',
'Regelmäßige Übungen und Audits',
'Vollständige Dokumentation',
'Integration mit IT-Disaster-Recovery',
],
estimatedEffort: '12-20 Stunden',
},
},
zertifizierung: {
L1: {
required: false,
depth: 'Nicht relevant',
detailItems: ['Keine Zertifizierung erforderlich'],
estimatedEffort: 'N/A',
},
L2: {
required: false,
depth: 'Nicht relevant',
detailItems: ['Keine Zertifizierung erforderlich'],
estimatedEffort: 'N/A',
},
L3: {
required: false,
depth: 'Optional',
detailItems: [
'Evaluierung möglicher Zertifizierungen',
'Gap-Analyse durchgeführt',
'Entscheidung für/gegen Zertifizierung dokumentiert',
],
estimatedEffort: '4-8 Stunden',
},
L4: {
required: true,
depth: 'Vollständig',
detailItems: [
'Zertifizierungsvorbereitung (ISO 27001, ISO 27701, etc.)',
'Gap-Analyse abgeschlossen',
'Maßnahmenplan erstellt',
'Interne Audits durchgeführt',
'Dokumentation audit-ready',
'Zertifizierungsstelle ausgewählt',
],
estimatedEffort: '40-80 Stunden',
},
},
datenschutzmanagement: {
L1: {
required: false,
depth: 'Nicht erforderlich',
detailItems: ['Kein formales DSMS notwendig'],
estimatedEffort: 'N/A',
},
L2: {
required: false,
depth: 'Basis',
detailItems: [
'Grundlegendes Datenschutzmanagement',
'Verantwortlichkeiten definiert',
'Regelmäßige Reviews geplant',
],
estimatedEffort: '2-4 Stunden',
},
L3: {
required: true,
depth: 'Standard',
detailItems: [
'Alle L2-Anforderungen',
'Strukturiertes DSMS etabliert',
'Datenschutz-Policy erstellt',
'Regelmäßige Management-Reviews',
'KPIs für Datenschutz definiert',
'Verbesserungsprozess etabliert',
],
estimatedEffort: '8-16 Stunden',
},
L4: {
required: true,
depth: 'Vollständig',
detailItems: [
'Alle L3-Anforderungen',
'ISO 27701 oder vergleichbares DSMS',
'Integration mit ISMS',
'Vollständige Dokumentation aller Prozesse',
'Regelmäßige interne und externe Audits',
'Kontinuierliche Verbesserung nachgewiesen',
],
estimatedEffort: '24-40 Stunden',
},
},
iace_ce_assessment: {
L1: {
required: false,
depth: 'Minimal',
detailItems: [
'Regulatorischer Quick-Check fuer SW/FW/KI',
'Grundlegende Identifikation relevanter Vorschriften',
],
estimatedEffort: '2 Stunden',
},
L2: {
required: true,
depth: 'Standard',
detailItems: [
'CE-Risikobeurteilung fuer SW/FW-Komponenten',
'Hazard Log mit S×E×P Bewertung',
'CRA-Konformitaetspruefung',
'Grundlegende Massnahmendokumentation',
],
estimatedEffort: '8 Stunden',
},
L3: {
required: true,
depth: 'Detailliert',
detailItems: [
'Alle L2-Anforderungen',
'Vollstaendige CE-Akte inkl. KI-Dossier',
'AI Act High-Risk Konformitaetsbewertung',
'Maschinenverordnung Anhang III Nachweis',
'Verifikationsplan mit Akzeptanzkriterien',
'Evidence-Management fuer Testnachweise',
],
estimatedEffort: '16 Stunden',
},
L4: {
required: true,
depth: 'Audit-Ready',
detailItems: [
'Alle L3-Anforderungen',
'Zertifizierungsfertige CE-Dokumentation',
'Benannte-Stelle-tauglicher Nachweis',
'Revisionssichere Audit Trails',
'Post-Market Monitoring Plan',
'Continuous Compliance Framework',
],
estimatedEffort: '24 Stunden',
},
},
widerrufsbelehrung: {
L1: {
required: false,
depth: 'Nicht relevant',
detailItems: ['Nur bei B2C-Fernabsatz erforderlich'],
estimatedEffort: '0',
},
L2: {
required: true,
depth: 'Standard',
detailItems: [
'Muster-Widerrufsbelehrung nach EGBGB Anlage 1',
'Muster-Widerrufsformular nach EGBGB Anlage 2',
'Integration in Bestellprozess',
'14-Tage Widerrufsfrist korrekt dargestellt',
],
estimatedEffort: '2-4 Stunden',
},
L3: {
required: true,
depth: 'Erweitert',
detailItems: [
'Wie L2 + digitale Inhalte (§ 356 Abs. 5 BGB)',
'Ausnahmen dokumentiert (§ 312g Abs. 2 BGB)',
],
estimatedEffort: '4-6 Stunden',
},
L4: {
required: true,
depth: 'Vollstaendig',
detailItems: [
'Wie L3 + automatisierte Pruefung',
'Mehrsprachig bei EU-Verkauf',
],
estimatedEffort: '6-8 Stunden',
},
},
preisangaben: {
L1: {
required: false,
depth: 'Nicht relevant',
detailItems: ['Nur bei B2C-Preisauszeichnung erforderlich'],
estimatedEffort: '0',
},
L2: {
required: true,
depth: 'Standard',
detailItems: [
'Gesamtpreisangabe inkl. MwSt (§ 1 PAngV)',
'Grundpreisangabe bei Mengenware (§ 4 PAngV)',
'Versandkosten deutlich angegeben',
],
estimatedEffort: '2-3 Stunden',
},
L3: {
required: true,
depth: 'Erweitert',
detailItems: [
'Wie L2 + Preishistorie bei Rabattaktionen (Omnibus-RL)',
'Streichpreise korrekt dargestellt',
],
estimatedEffort: '3-5 Stunden',
},
L4: {
required: true,
depth: 'Vollstaendig',
detailItems: [
'Wie L3 + automatisierte Pruefung',
'Mehrwaehrungsunterstuetzung',
],
estimatedEffort: '5-8 Stunden',
},
},
fernabsatz_info: {
L1: {
required: false,
depth: 'Nicht relevant',
detailItems: ['Nur bei Fernabsatzvertraegen erforderlich'],
estimatedEffort: '0',
},
L2: {
required: true,
depth: 'Standard',
detailItems: [
'Pflichtinformationen nach § 312d BGB i.V.m. Art. 246a EGBGB',
'Wesentliche Eigenschaften der Ware/Dienstleistung',
'Identitaet und Anschrift des Unternehmers',
'Zahlungs-, Liefer- und Leistungsbedingungen',
],
estimatedEffort: '3-5 Stunden',
},
L3: {
required: true,
depth: 'Erweitert',
detailItems: [
'Wie L2 + Informationen zu digitalen Inhalten/Diensten',
'Funktionalitaet und Interoperabilitaet (§ 327 BGB)',
],
estimatedEffort: '5-8 Stunden',
},
L4: {
required: true,
depth: 'Vollstaendig',
detailItems: [
'Wie L3 + mehrsprachige Informationspflichten',
'Automatisierte Vollstaendigkeitspruefung',
],
estimatedEffort: '8-12 Stunden',
},
},
streitbeilegung: {
L1: {
required: false,
depth: 'Nicht relevant',
detailItems: ['Nur bei B2C-Handel erforderlich'],
estimatedEffort: '0',
},
L2: {
required: true,
depth: 'Standard',
detailItems: [
'Hinweis auf OS-Plattform der EU-Kommission (Art. 14 ODR-VO)',
'Erklaerung zur Teilnahmebereitschaft an Streitbeilegung (§ 36 VSBG)',
'Link zur OS-Plattform im Impressum/AGB',
],
estimatedEffort: '1-2 Stunden',
},
L3: {
required: true,
depth: 'Erweitert',
detailItems: [
'Wie L2 + Benennung zustaendiger Verbraucherschlichtungsstelle',
'Prozess fuer Streitbeilegungsanfragen dokumentiert',
],
estimatedEffort: '2-3 Stunden',
},
L4: {
required: true,
depth: 'Vollstaendig',
detailItems: [
'Wie L3 + Eskalationsprozess dokumentiert',
'Regelmaessige Auswertung von Beschwerden',
],
estimatedEffort: '3-4 Stunden',
},
},
produktsicherheit: {
L1: {
required: false,
depth: 'Minimal',
detailItems: ['Grundlegende Produktkennzeichnung pruefen'],
estimatedEffort: '1 Stunde',
},
L2: {
required: true,
depth: 'Standard',
detailItems: [
'Produktsicherheitsbewertung nach GPSR (EU 2023/988)',
'CE-Kennzeichnung und Konformitaetserklaerung',
'Wirtschaftsakteur-Angaben auf Produkt/Verpackung',
'Technische Dokumentation fuer Marktaufsicht',
],
estimatedEffort: '8-12 Stunden',
},
L3: {
required: true,
depth: 'Erweitert',
detailItems: [
'Wie L2 + Risikoanalyse fuer alle Produktvarianten',
'Rueckrufplan und Marktbeobachtungspflichten',
'Supply-Chain-Dokumentation',
],
estimatedEffort: '16-24 Stunden',
},
L4: {
required: true,
depth: 'Vollstaendig',
detailItems: [
'Wie L3 + vollstaendige GPSR-Konformitaetsakte',
'Post-Market-Surveillance System',
'Audit-Trail fuer alle Sicherheitsbewertungen',
],
estimatedEffort: '24-40 Stunden',
},
},
ai_act_doku: {
L1: {
required: false,
depth: 'Minimal',
detailItems: ['KI-Risikokategorisierung (Art. 6 AI Act)'],
estimatedEffort: '2 Stunden',
},
L2: {
required: true,
depth: 'Standard',
detailItems: [
'Technische Dokumentation nach Art. 11 AI Act',
'Transparenzpflichten (Art. 52 AI Act)',
'Risikomanagement-Grundlagen (Art. 9 AI Act)',
'Menschliche Aufsicht dokumentiert (Art. 14 AI Act)',
],
estimatedEffort: '8-12 Stunden',
},
L3: {
required: true,
depth: 'Erweitert',
detailItems: [
'Wie L2 + Datenqualitaetsmanagement (Art. 10 AI Act)',
'Genauigkeits- und Robustheitstests (Art. 15 AI Act)',
'Vollstaendige Konformitaetsbewertung fuer Hochrisiko-KI',
],
estimatedEffort: '16-24 Stunden',
},
L4: {
required: true,
depth: 'Audit-Ready',
detailItems: [
'Wie L3 + Zertifizierungsfertige AI Act Dokumentation',
'EU-Datenbank-Registrierung (Art. 60 AI Act)',
'Post-Market Monitoring fuer KI-Systeme',
'Continuous Compliance Framework fuer KI',
],
estimatedEffort: '24-40 Stunden',
},
},
};

View File

@@ -0,0 +1,84 @@
/**
* Compliance Scope Engine - Document Types
*
* Definiert Dokumenttypen und deren Anforderungen pro Compliance-Level.
*/
import type { ComplianceDepthLevel } from './core-levels'
/**
* Alle verfügbaren Dokumenttypen im SDK
*/
export type ScopeDocumentType =
| 'vvt' // Verzeichnis von Verarbeitungstätigkeiten
| 'lf' // Löschfristenkonzept
| 'tom' // Technische und organisatorische Maßnahmen
| 'av_vertrag' // Auftragsverarbeitungsvertrag
| 'dsi' // Datenschutz-Informationen (Privacy Policy)
| 'betroffenenrechte' // Betroffenenrechte-Prozess
| 'dsfa' // Datenschutz-Folgenabschätzung
| 'daten_transfer' // Drittlandtransfer-Dokumentation
| 'datenpannen' // Datenpannen-Prozess
| 'einwilligung' // Einwilligungsmanagement
| 'vertragsmanagement' // Vertragsmanagement-Prozess
| 'schulung' // Mitarbeiterschulung
| 'audit_log' // Audit & Logging Konzept
| 'risikoanalyse' // Risikoanalyse
| 'notfallplan' // Notfall- & Krisenplan
| 'zertifizierung' // Zertifizierungsvorbereitung
| 'datenschutzmanagement' // Datenschutzmanagement-System (DSMS)
| 'iace_ce_assessment' // CE-Risikobeurteilung SW/FW/KI (IACE)
| 'widerrufsbelehrung' // Widerrufsbelehrung (§ 312g BGB)
| 'preisangaben' // Preisangaben (PAngV)
| 'fernabsatz_info' // Informationspflichten Fernabsatz (§ 312d BGB)
| 'streitbeilegung' // Streitbeilegungshinweis (VSBG § 36)
| 'produktsicherheit' // Produktsicherheit (GPSR EU 2023/988)
| 'ai_act_doku'; // AI Act Technische Dokumentation (Art. 11)
/**
* Erforderliches Dokument mit Detailtiefe
*/
export interface RequiredDocument {
/** Dokumenttyp */
documentType: ScopeDocumentType;
/** Anzeigename */
label: string;
/** Pflicht oder empfohlen */
requirement: 'mandatory' | 'recommended';
/** Priorität */
priority: 'high' | 'medium' | 'low';
/** Geschätzter Aufwand in Stunden */
estimatedEffort: number;
/** Von welchen Triggern/Regeln gefordert */
triggeredBy: string[];
/** Link zum SDK-Schritt */
sdkStepUrl?: string;
}
/**
* Anforderungen an ein Dokument pro Level
*/
export interface DocumentDepthRequirement {
/** Ist auf diesem Level erforderlich? */
required: boolean;
/** Tiefenbezeichnung */
depth: string;
/** Konkrete Anforderungen */
detailItems: string[];
/** Geschätzter Aufwand */
estimatedEffort: string;
}
/**
* Vollständige Scope-Anforderungen für ein Dokument
*/
export interface DocumentScopeRequirement {
/** L1 Anforderungen */
L1: DocumentDepthRequirement;
/** L2 Anforderungen */
L2: DocumentDepthRequirement;
/** L3 Anforderungen */
L3: DocumentDepthRequirement;
/** L4 Anforderungen */
L4: DocumentDepthRequirement;
}

View File

@@ -0,0 +1,77 @@
/**
* Compliance Scope Engine - Hard Trigger Types
*
* Definiert Typen für regelbasierte Mindest-Compliance-Level-Erzwingung.
*/
import type { ComplianceDepthLevel } from './core-levels'
/**
* Bedingungsoperatoren für Hard Trigger
*/
export type HardTriggerOperator =
| 'EQUALS' // Exakte Übereinstimmung
| 'CONTAINS' // Enthält (für Arrays/Strings)
| 'IN' // Ist in Liste enthalten
| 'GREATER_THAN' // Größer als (numerisch)
| 'NOT_EQUALS'; // Ungleich
/**
* Hard Trigger Regel - erzwingt Mindest-Compliance-Level
*/
export interface HardTriggerRule {
/** Eindeutige ID der Regel */
id: string;
/** Kategorie der Regel */
category: string;
/** Frage-ID, die geprüft wird */
questionId: string;
/** Bedingungsoperator */
condition: HardTriggerOperator;
/** Wert, der geprüft wird */
conditionValue: unknown;
/** Minimal erforderliches Level */
minimumLevel: ComplianceDepthLevel;
/** DSFA erforderlich? */
requiresDSFA: boolean;
/** Pflichtdokumente bei Trigger */
mandatoryDocuments: string[];
/** Rechtsgrundlage */
legalReference: string;
/** Detaillierte Beschreibung */
description: string;
/** Kombiniert mit Art. 9 Daten? */
combineWithArt9?: boolean;
/** Kombiniert mit Minderjährigen-Daten? */
combineWithMinors?: boolean;
/** Kombiniert mit KI-Nutzung? */
combineWithAI?: boolean;
/** Kombiniert mit Mitarbeiterüberwachung? */
combineWithEmployeeMonitoring?: boolean;
/** Kombiniert mit automatisierter Entscheidungsfindung? */
combineWithADM?: boolean;
/** Regel feuert NICHT wenn diese Bedingung zutrifft */
excludeWhen?: { questionId: string; value: string | string[] };
/** Regel feuert NUR wenn diese Bedingung zutrifft */
requireWhen?: { questionId: string; value: string | string[] };
}
/**
* Getriggerter Hard Trigger mit Kontext
*/
export interface TriggeredHardTrigger {
/** Regel-ID */
ruleId: string;
/** Kategorie */
category: string;
/** Beschreibung */
description: string;
/** Rechtsgrundlage */
legalReference?: string;
/** Mindest-Level */
minimumLevel: ComplianceDepthLevel;
/** DSFA erforderlich? */
requiresDSFA: boolean;
/** Pflichtdokumente */
mandatoryDocuments: string[];
}

View File

@@ -0,0 +1,10 @@
// Barrel re-export — split from the monolithic compliance-scope-types.ts
export * from './core-levels';
export * from './constants';
export * from './questions';
export * from './hard-triggers';
export * from './documents';
export * from './decisions';
export * from './document-scope-matrix-core';
export * from './document-scope-matrix-extended';
export * from './state';

View File

@@ -0,0 +1,77 @@
/**
* Compliance Scope Engine - Question & Profiling Types
*
* Definiert Typen für das Scope-Profiling-Fragebogensystem.
*/
/**
* IDs der Fragenblöcke für das Scope-Profiling
*/
export type ScopeQuestionBlockId =
| 'organisation' // Organisation & Reife
| 'data' // Daten & Betroffene
| 'processing' // Verarbeitung & Zweck
| 'tech' // Technik & Hosting
| 'processes' // Rechte & Prozesse
| 'product' // Produktkontext
| 'ai_systems' // KI-Systeme (aus Profil portiert)
| 'vvt' // Verarbeitungstaetigkeiten (aus Profil portiert)
| 'datenkategorien_detail'; // Datenkategorien pro Abteilung (Block 9)
/**
* Eine einzelne Frage im Scope-Profiling
*/
export interface ScopeProfilingQuestion {
/** Eindeutige ID der Frage */
id: string;
/** Fragetext */
question: string;
/** Optional: Hilfetext/Erklärung */
helpText?: string;
/** Antworttyp */
type: 'single' | 'multi' | 'boolean' | 'number' | 'text';
/** Antwortoptionen (für single/multi) */
options?: Array<{ value: string; label: string }>;
/** Ist die Frage erforderlich? */
required: boolean;
/** Gewichtung für Score-Berechnung */
scoreWeights?: {
risk?: number; // Einfluss auf Risiko-Score
complexity?: number; // Einfluss auf Komplexitäts-Score
assurance?: number; // Einfluss auf Assurance-Bedarf
};
/** Mapping zu Firmenprofil-Feldern */
mapsToCompanyProfile?: string;
/** Mapping zu VVT-Fragen */
mapsToVVTQuestion?: string;
/** Mapping zu LF-Fragen */
mapsToLFQuestion?: string;
/** Mapping zu TOM-Profil */
mapsToTOMProfile?: string;
}
/**
* Antwort auf eine Profiling-Frage
*/
export interface ScopeProfilingAnswer {
/** ID der beantworteten Frage */
questionId: string;
/** Antwortwert (Typ abhängig von Fragentyp) */
value: string | string[] | boolean | number;
}
/**
* Ein Block von zusammengehörigen Fragen
*/
export interface ScopeQuestionBlock {
/** Block-ID */
id: ScopeQuestionBlockId;
/** Block-Titel */
title: string;
/** Block-Beschreibung */
description: string;
/** Reihenfolge des Blocks */
order: number;
/** Fragen in diesem Block */
questions: ScopeProfilingQuestion[];
}

View File

@@ -0,0 +1,22 @@
/**
* Compliance Scope Engine - State Management Types
*
* Definiert den Gesamtzustand des Compliance Scope.
*/
import type { ScopeProfilingAnswer } from './questions'
import type { ScopeDecision } from './decisions'
/**
* Gesamter Zustand des Compliance Scope
*/
export interface ComplianceScopeState {
/** Alle gegebenen Antworten */
answers: ScopeProfilingAnswer[];
/** Aktuelle Entscheidung (null wenn noch nicht berechnet) */
decision: ScopeDecision | null;
/** Zeitpunkt der letzten Evaluierung */
lastEvaluatedAt: string | null;
/** Sind alle Pflichtfragen beantwortet? */
isComplete: boolean;
}