feat: Drafting Agent Kompetenzbereich erweitert — alle 18 Dokumenttypen, Gap-Banner, Redirect-Logic
All checks were successful
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-ai-compliance (push) Successful in 35s
CI / test-python-backend-compliance (push) Successful in 32s
CI / test-python-document-crawler (push) Successful in 24s
CI / test-python-dsms-gateway (push) Successful in 23s

- DOCUMENT_SDK_STEP_MAP: 12 kaputte URLs korrigiert (z.B. /sdk/loeschkonzept → /sdk/loeschfristen)
- Go Backend: iace_ce_assessment zur validTypes-Whitelist hinzugefuegt
- SOUL-Datei: von 17 auf ~80 Zeilen erweitert (18 draftbare Typen, Redirects, operative Module)
- Intent Classifier: 10 fehlende Dokumenttyp-Patterns + 5 Redirect-Patterns (Impressum/AGB/Widerruf → Document Generator)
- State Projector: getExistingDocumentTypes von 6 auf 11 Checks erweitert (risks, escalations, iace, obligations, dsr)
- DraftingEngineWidget: Gap-Banner fuer kritische Luecken mit Analysieren-Button
- Cross-Validation: 4 neue deterministische Regeln (DSFA-NO-VVT, DSFA-NO-TOM, DSI-NO-LF, AV-NO-VVT)
- Prose Blocks: 5 neue Dokumenttypen (av_vertrag, betroffenenrechte, risikoanalyse, notfallplan, iace_ce_assessment)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Benjamin Admin
2026-03-05 09:07:07 +01:00
parent 6e0e9cd3cf
commit 274dc68e24
9 changed files with 343 additions and 13 deletions

View File

@@ -84,6 +84,66 @@ function deterministicCheck(
})
}
// Check 5: DSFA ohne VVT-Grundlage
if (documentType === 'dsfa' && validationContext.crossReferences.vvtCategories.length === 0) {
findings.push({
id: 'DET-DSFA-NO-VVT',
severity: 'error',
category: 'cross_reference',
title: 'DSFA ohne VVT-Grundlage',
description: 'Eine DSFA setzt ein Verarbeitungsverzeichnis voraus. Ohne VVT fehlt die Uebersicht ueber die betroffenen Verarbeitungstaetigkeiten.',
documentType: 'dsfa',
crossReferenceType: 'vvt',
legalReference: 'Art. 35 i.V.m. Art. 30 DSGVO',
suggestion: 'Zuerst ein VVT erstellen, dann die DSFA darauf aufbauen.',
})
}
// Check 6: DSFA ohne TOM-Massnahmen
if (documentType === 'dsfa' && validationContext.crossReferences.tomControls.length === 0) {
findings.push({
id: 'DET-DSFA-NO-TOM',
severity: 'error',
category: 'cross_reference',
title: 'DSFA ohne TOM-Massnahmen',
description: 'Eine DSFA muss Abhilfemassnahmen enthalten. Ohne TOM-Katalog koennen keine Schutzmassnahmen referenziert werden.',
documentType: 'dsfa',
crossReferenceType: 'tom',
legalReference: 'Art. 35 Abs. 7d DSGVO',
suggestion: 'TOM-Massnahmen definieren, bevor die DSFA erstellt wird.',
})
}
// Check 7: Datenschutzerklaerung ohne Loeschfristen
if (documentType === 'dsi' && validationContext.crossReferences.retentionCategories.length === 0) {
findings.push({
id: 'DET-DSI-NO-LF',
severity: 'warning',
category: 'cross_reference',
title: 'Datenschutzerklaerung ohne Loeschfristen',
description: 'Die Datenschutzerklaerung muss Angaben zur Speicherdauer enthalten. Ohne definierte Loeschfristen fehlt diese Information.',
documentType: 'dsi',
crossReferenceType: 'lf',
legalReference: 'Art. 13 Abs. 2a DSGVO',
suggestion: 'Loeschfristen definieren und in der Datenschutzerklaerung referenzieren.',
})
}
// Check 8: AVV ohne VVT-Kontext
if (documentType === 'av_vertrag' && validationContext.crossReferences.vvtCategories.length === 0) {
findings.push({
id: 'DET-AV-NO-VVT',
severity: 'warning',
category: 'cross_reference',
title: 'AVV ohne VVT-Kontext',
description: 'Ein Auftragsverarbeitungsvertrag sollte auf den im VVT dokumentierten Verarbeitungstaetigkeiten basieren.',
documentType: 'av_vertrag',
crossReferenceType: 'vvt',
legalReference: 'Art. 28 Abs. 3 i.V.m. Art. 30 DSGVO',
suggestion: 'VVT erstellen, um die betroffenen Verarbeitungstaetigkeiten fuer den AVV zu identifizieren.',
})
}
return findings
}