diff --git a/admin-compliance/app/sdk/sdk-flow/flow-data.ts b/admin-compliance/app/sdk/sdk-flow/flow-data.ts
index 4a7abc0..544507a 100644
--- a/admin-compliance/app/sdk/sdk-flow/flow-data.ts
+++ b/admin-compliance/app/sdk/sdk-flow/flow-data.ts
@@ -123,9 +123,9 @@ export const SDK_FLOW_STEPS: SDKFlowStep[] = [
checkpointType: 'REQUIRED',
checkpointReviewer: 'NONE',
description: 'Bestimmung der Compliance-Tiefe und des Umfangs basierend auf Unternehmensprofil.',
- descriptionLong: 'Basierend auf dem Unternehmensprofil wird automatisch ermittelt, wie tiefgehend die Compliance-Analyse sein muss. Kleine Unternehmen mit wenig Datenverarbeitung erhalten eine "BASIS"-Tiefe, waehrend grosse Unternehmen mit sensiblen Daten oder KI-Systemen eine "ERWEITERT" oder "VOLLSTAENDIG"-Tiefe erhalten. Der Compliance-Scope bestimmt, welche Module aktiviert werden und wie detailliert die Dokumentation sein muss.',
+ descriptionLong: 'Basierend auf dem Unternehmensprofil wird automatisch ermittelt, wie tiefgehend die Compliance-Analyse sein muss. Kleine Unternehmen mit wenig Datenverarbeitung erhalten eine "BASIS"-Tiefe, waehrend grosse Unternehmen mit sensiblen Daten oder KI-Systemen eine "ERWEITERT" oder "VOLLSTAENDIG"-Tiefe erhalten. Der Compliance-Scope bestimmt, welche Module aktiviert werden und wie detailliert die Dokumentation sein muss. Zusaetzlich werden anwendbare Regulierungen (DSGVO, AI Act, NIS2 etc.) und zustaendige Aufsichtsbehoerden automatisch abgeleitet.',
inputs: ['companyProfile'],
- outputs: ['complianceDepthLevel'],
+ outputs: ['complianceDepthLevel', 'applicableRegulations', 'supervisoryAuthorities'],
prerequisiteSteps: ['company-profile'],
dbTables: ['sdk_states'],
dbMode: 'read/write',
@@ -399,9 +399,9 @@ export const SDK_FLOW_STEPS: SDKFlowStep[] = [
checkpointType: 'REQUIRED',
checkpointReviewer: 'NONE',
description: 'Zusammenfassung aller gesetzlichen Pflichten aus DSGVO, AI Act, NIS2.',
- descriptionLong: 'Die Pflichtenuebersicht konsolidiert alle gesetzlichen Pflichten, die sich aus den Requirements, der AI-Act-Klassifizierung und den aktivierten Modulen ergeben. Fuer jede Pflicht wird angegeben: Welches Gesetz (DSGVO, AI Act, NIS2), welcher Artikel, welche Frist, wer verantwortlich ist und welche Massnahmen erforderlich sind. Die RAG-Collection bp_compliance_recht liefert aktuelle Pflichtentexte und Auslegungshinweise.',
+ descriptionLong: 'Die Pflichtenuebersicht konsolidiert alle gesetzlichen Pflichten, die sich aus den Requirements, der AI-Act-Klassifizierung und den aktivierten Modulen ergeben. Wenn applicableRegulations aus dem Scope-Profiling vorliegen, werden diese direkt als Vorfilter verwendet. Fuer jede Pflicht wird angegeben: Welches Gesetz (DSGVO, AI Act, NIS2), welcher Artikel, welche Frist, wer verantwortlich ist und welche Massnahmen erforderlich sind. Die RAG-Collection bp_compliance_recht liefert aktuelle Pflichtentexte und Auslegungshinweise.',
legalBasis: 'Art. 5 Abs. 2 DSGVO, Art. 9 AI Act',
- inputs: ['requirements', 'aiActClassification', 'modules'],
+ inputs: ['requirements', 'aiActClassification', 'modules', 'applicableRegulations'],
outputs: ['obligationsOverview'],
prerequisiteSteps: ['audit-report'],
dbTables: ['compliance_obligations'],
diff --git a/admin-compliance/components/sdk/ProjectSelector/ProjectSelector.tsx b/admin-compliance/components/sdk/ProjectSelector/ProjectSelector.tsx
index 6ac35d1..d7b4ffa 100644
--- a/admin-compliance/components/sdk/ProjectSelector/ProjectSelector.tsx
+++ b/admin-compliance/components/sdk/ProjectSelector/ProjectSelector.tsx
@@ -482,7 +482,6 @@ export function ProjectSelector() {
}
const handleProjectClick = (project: ProjectInfo) => {
- if (project.status === 'archived') return // archived projects are read-only in list
router.push(`/sdk?project=${project.id}`)
}
@@ -598,26 +597,6 @@ export function ProjectSelector() {
)}
- {/* No active but has archived */}
- {!loading && projects.length === 0 && archivedProjects.length > 0 && (
-
-
Keine aktiven Projekte
-
- Sie haben {archivedProjects.length} archivierte{archivedProjects.length === 1 ? 's' : ''} Projekt{archivedProjects.length === 1 ? '' : 'e'}.
- Stellen Sie ein Projekt wieder her oder erstellen Sie ein neues.
-
+ Aus CompanyProfile und Scope-Profiling werden anwendbare Gesetze (DSGVO, AI Act, NIS2, DORA etc.) und zustaendige Aufsichtsbehoerden automatisch ermittelt
+
+
{/* Next Steps */}
diff --git a/docs-src/services/sdk-modules/obligations.md b/docs-src/services/sdk-modules/obligations.md
index 88c58a6..27d0cbe 100644
--- a/docs-src/services/sdk-modules/obligations.md
+++ b/docs-src/services/sdk-modules/obligations.md
@@ -144,7 +144,7 @@ Obligation DSGVO-ART-32 → Controls [TOM-001, TOM-042, TOM-097]
| `GET` | `/sdk/v1/ucca/obligations/regulations` | Alle verfügbaren Regulierungen auflisten |
| `GET` | `/sdk/v1/ucca/obligations/regulations/:id/decision-tree` | Entscheidungsbaum für eine Regulierung |
-### Schnellprüfung
+### Schnellprüfung & Scope-Assessment
| Methode | Pfad | Beschreibung |
|---------|------|--------------|
@@ -205,6 +205,60 @@ Obligation DSGVO-ART-32 → Controls [TOM-001, TOM-042, TOM-097]
---
+## Automatische Regulierungs-Ableitung
+
+Seit v2 kann das Obligations-Framework anwendbare Regulierungen und Aufsichtsbehörden direkt aus dem Scope-Profiling ableiten.
+
+### Datenfluss
+
+```
+CompanyProfile + ScopeProfilingAnswers
+ │
+ ▼
+ scope-to-facts.ts ← Konvertiert Profil + Scope-Antworten in ScopeDecisionPayload
+ │
+ ▼
+ POST /assess-from-scope ← Go AI SDK bewertet Payload gegen Condition Engine
+ │
+ ▼
+ ApplicableRegulations ← Liste anwendbarer Gesetze (DSGVO, AI Act, NIS2, etc.)
+ +
+ supervisory-authority- ← Zuständige Aufsichtsbehörden (LfDI, BSI, BaFin, BNetzA)
+ resolver.ts
+```
+
+### Neue Dateien
+
+| Datei | Beschreibung |
+|-------|--------------|
+| `admin-compliance/lib/sdk/scope-to-facts.ts` | Mapper: CompanyProfile + ScopeAnswers → `ScopeDecisionPayload` für Go SDK |
+| `admin-compliance/lib/sdk/supervisory-authority-resolver.ts` | Ermittelt Aufsichtsbehörden aus Bundesland/Land + Regulierungen |
+
+### scope-to-facts.ts
+
+Exportierte Funktionen:
+
+- `buildAssessmentPayload(profile, scopeAnswers, decision)` → `ScopeDecisionPayload`
+- `parseEmployeeRange(range)` → Mittelwert als Zahl (z.B. "50-249" → 150)
+- `parseRevenueRange(range)` → Umsatz als Zahl (z.B. "10-50 Mio" → 30.000.000)
+
+### supervisory-authority-resolver.ts
+
+Exportierte Funktion:
+
+- `resolveAuthorities(state, country, regulationIds)` → `SupervisoryAuthorityResult[]`
+
+Abgedeckte Regulierungen → Behörden:
+
+| Regulierung | Behörde (DE) | Behörde (Andere) |
+|-------------|-------------|-----------------|
+| `dsgvo` | Landes-Datenschutzbehörde (16 Bundesländer) | Nationale DSB (AT, CH, FR, NL, etc.) |
+| `nis2` | BSI | NCSA |
+| `financial_policy` | BaFin | — |
+| `ai_act` | BNetzA | — |
+
+---
+
## Gap-Analyse
Die Gap-Analyse vergleicht die **geforderten TOM-Controls** (aus Obligations) mit den **implementierten Controls** (aus `compliance_controls`):