/** * Cross-Document Validation Prompt */ import type { ValidationContext } from '../types' export interface CrossCheckInput { context: ValidationContext focusDocuments?: string[] instructions?: string } export function buildCrossCheckPrompt(input: CrossCheckInput): string { const { context, focusDocuments, instructions } = input return `## Aufgabe: Cross-Dokument-Konsistenzpruefung ### Scope-Level: ${context.scopeLevel} ### Vorhandene Dokumente: ${context.documents.map(d => `- ${d.type}: ${d.contentSummary}`).join('\n')} ### Cross-Referenzen: - VVT-Kategorien: ${context.crossReferences.vvtCategories.join(', ') || 'Keine'} - DSFA-Risiken: ${context.crossReferences.dsfaRisks.join(', ') || 'Keine'} - TOM-Controls: ${context.crossReferences.tomControls.join(', ') || 'Keine'} - Loeschfristen-Kategorien: ${context.crossReferences.retentionCategories.join(', ') || 'Keine'} ### Tiefenpruefung pro Dokument: ${context.documents.map(d => { const req = context.depthRequirements[d.type] return req ? `- ${d.type}: Erforderlich=${req.required}, Tiefe=${req.depth}` : `- ${d.type}: Keine Requirements` }).join('\n')} ${focusDocuments ? `### Fokus auf: ${focusDocuments.join(', ')}` : ''} ${instructions ? `### Zusaetzliche Anweisungen: ${instructions}` : ''} ### Pruefkriterien: 1. Jede VVT-Taetigkeit muss einen TOM-Verweis haben 2. Jede VVT-Kategorie muss eine Loeschfrist haben 3. Bei DSFA-pflichtigen Verarbeitungen muss eine DSFA existieren 4. TOM-Massnahmen muessen zum Risikoprofil passen 5. Loeschfristen duerfen gesetzliche Minima nicht unterschreiten 6. Dokument-Tiefe muss Level ${context.scopeLevel} entsprechen ### Antwort-Format Antworte als JSON: { "passed": true/false, "errors": [ { "id": "ERR-001", "severity": "error", "category": "scope_violation|inconsistency|missing_content|depth_mismatch|cross_reference", "title": "...", "description": "...", "documentType": "vvt|tom|dsfa|...", "crossReferenceType": "...", "legalReference": "Art. ... DSGVO", "suggestion": "..." } ], "warnings": [...], "suggestions": [...] }` }