ai-kanban: Board-Status korrigiert, ENG-08 nachgetragen
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (pull_request) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (push) Canceled after 0s
CI / Connect Security-Test-Gate (QA-01 AC4, Merge-Gate) (push) Canceled after 0s
Core-Schnittstellen-Vertragstests / contract-tests (pull_request) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (push) Canceled after 0s
CI / Web (dms-browser) (push) Canceled after 0s
CI / Web (pdf-viewer) (push) Canceled after 0s
CI / Web (shl) (push) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (pull_request) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (pull_request) Canceled after 0s
CI / Connect Security-Test-Gate (QA-01 AC4, Merge-Gate) (pull_request) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (pull_request) Canceled after 0s
CI / Web (dms-browser) (pull_request) Canceled after 0s
CI / Web (pdf-viewer) (pull_request) Canceled after 0s
CI / Web (shl) (pull_request) Canceled after 0s
Supply-Chain-Scan (Go) / govulncheck (pull_request) Canceled after 0s
Supply-Chain-Scan (npm) / npm-audit (pull_request) Canceled after 0s
Core-Pflichttest-Gate / pflichttest-gate (pull_request) Canceled after 0s
RBAC-Rollenhierarchie-Pflichtgate / rbac-policy-invariant (pull_request) Canceled after 0s
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (push) Canceled after 0s
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (pull_request) Canceled after 0s

37 bereits gemergte Tickets (ENG-01-07, CLS-01-05, EXT-01-05,
SUM-01-04, SEM-01-06, WFS-01-03, GOV-01-07) waren faelschlich als
Backlog markiert, jetzt auf Fertig. ENG-08 war trotz gemergtem Code
komplett im Board gefehlt (gleiches Muster wie workflow-kanban
ENG-09/ENG-11, siehe #337), jetzt nachgetragen. QA-01 bis QA-09
bleiben korrekt Backlog -- nicht umgesetzt.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
patrickandClaude Sonnet 5 committed 2026-10-17 10:47:35 +02:00
1 parent 382997e0d2
commit ae6d9b2c60
2 files changed
+119 -75

No files matched your search

+45 -37
View File
@@ -1,172 +1,172 @@
Code,Titel,Epic,Rolle,Komplexitaet,Aufwand_PT,Welle,Status,Technik,Beschreibung,Haengt_ab_von,Schaltet_frei,Akzeptanzkriterien,Pruefungen
ENG-01,"Provider-Interface (OpenAI-kompatibel, austauschbar)",🧠 KI-Engine & Modell-Anbindung,Backend,Mittel,3,1,Backlog,"Go-Interface, Chat-/Completion-/Embedding-Abstraktion","Einheitliche Schnittstelle für Inferenz-Aufrufe (Chat, Completion, Embedding), OpenAI-kompatibles Anfrage-/Antwortformat, austauschbar hinter einem Provider-Interface.",,ENG-02 ENG-03 ENG-04 ENG-05 ENG-06 GOV-06,"Provider-Interface deckt Chat, Completion und Embedding ab
ENG-01,"Provider-Interface (OpenAI-kompatibel, austauschbar)",🧠 KI-Engine & Modell-Anbindung,Backend,Mittel,3,1,Fertig,"Go-Interface, Chat-/Completion-/Embedding-Abstraktion","Einheitliche Schnittstelle für Inferenz-Aufrufe (Chat, Completion, Embedding), OpenAI-kompatibles Anfrage-/Antwortformat, austauschbar hinter einem Provider-Interface.",,ENG-02 ENG-03 ENG-04 ENG-05 ENG-06 GOV-06,"Provider-Interface deckt Chat, Completion und Embedding ab
Ein neuer Provider lässt sich ohne Änderung der Aufrufer einbinden
Fehler eines Providers werden einheitlich abgebildet","Zwei Provider-Implementierungen gegen dasselbe Interface getestet
Timeout- und Fehlerfall am Interface geprüft
Vertrag per Contract-Test abgesichert"
ENG-02,"Ollama-Adapter (lokal, Standard)",🧠 KI-Engine & Modell-Anbindung,Backend,Mittel,3,2,Backlog,"Ollama-HTTP-API, lokale Modell-Bereitstellung","Adapter für lokal gehostete Ollama-Instanz als Standard-Provider, inklusive Modell-Warmup und Health-Check.",ENG-01,GOV-03 QA-02,"Ollama-Adapter erfüllt das Provider-Interface vollständig
ENG-02,"Ollama-Adapter (lokal, Standard)",🧠 KI-Engine & Modell-Anbindung,Backend,Mittel,3,2,Fertig,"Ollama-HTTP-API, lokale Modell-Bereitstellung","Adapter für lokal gehostete Ollama-Instanz als Standard-Provider, inklusive Modell-Warmup und Health-Check.",ENG-01,GOV-03 QA-02,"Ollama-Adapter erfüllt das Provider-Interface vollständig
Nicht erreichbare Ollama-Instanz wird erkannt und gemeldet
Standard-Provider ist ohne weitere Konfiguration aktiv
Modellgrößen-Empfehlung je Betriebsstufe ist dokumentiert","Anfrage gegen lokale Ollama-Instanz erfolgreich beantwortet
Ausfall der Instanz führt zu klarer Fehlermeldung, nicht zu Absturz
Modellwechsel ohne Dienst-Neustart geprüft
Dokumentierte Modellgrößen-Empfehlung mit tatsächlichem Ressourcenverbrauch abgeglichen"
ENG-03,Externer-API-Adapter (optional),🧠 KI-Engine & Modell-Anbindung,Backend,Mittel,3,2,Backlog,"OpenAI-kompatible Cloud-API, API-Schlüssel-Verwaltung","Optionaler Adapter für externe, OpenAI-kompatible Cloud-Anbieter als Alternative zum lokalen Standardbetrieb.",ENG-01,GOV-03 QA-02,"Externer Adapter erfüllt das Provider-Interface vollständig
ENG-03,Externer-API-Adapter (optional),🧠 KI-Engine & Modell-Anbindung,Backend,Mittel,3,2,Fertig,"OpenAI-kompatible Cloud-API, API-Schlüssel-Verwaltung","Optionaler Adapter für externe, OpenAI-kompatible Cloud-Anbieter als Alternative zum lokalen Standardbetrieb.",ENG-01,GOV-03 QA-02,"Externer Adapter erfüllt das Provider-Interface vollständig
Aktivierung ist ausdrücklich und je Tenant konfigurierbar
Zugangsdaten liegen ausschließlich in Umgebungsvariablen","Anfrage gegen externen Anbieter erfolgreich beantwortet
Deaktivierter externer Adapter wird nie automatisch verwendet
Kein Dokumentinhalt verlässt das System ohne explizite Freigabe"
ENG-04,Modellverwaltung & -auswahl je Tenant,🧠 KI-Engine & Modell-Anbindung,Backend,Mittel,3,2,Backlog,"Modellregister, Tenant-Konfiguration, PostgreSQL",Verwaltung verfügbarer Modelle je Provider und Auswahl des aktiven Modells je Tenant und Funktion.,ENG-01,QA-02,"Modelle sind je Tenant konfigurierbar hinterlegt
ENG-04,Modellverwaltung & -auswahl je Tenant,🧠 KI-Engine & Modell-Anbindung,Backend,Mittel,3,2,Fertig,"Modellregister, Tenant-Konfiguration, PostgreSQL",Verwaltung verfügbarer Modelle je Provider und Auswahl des aktiven Modells je Tenant und Funktion.,ENG-01,QA-02,"Modelle sind je Tenant konfigurierbar hinterlegt
Modellwechsel wirkt ohne Neustart
Nicht verfügbares Modell wird beim Speichern abgewiesen","Modellwechsel im Test sofort wirksam
Fehlkonfiguration wird beim Speichern verhindert
Mandantentrennung der Modellauswahl geprüft"
ENG-05,Inferenz-Queue,🧠 KI-Engine & Modell-Anbindung,Backend,Mittel,3,2,Backlog,"Postgres-Jobqueue, Worker, Rückstandsverarbeitung","Asynchrone Warteschlange für Inferenz-Aufrufe, damit lange KI-Anfragen keine Anfrage-Bearbeitung blockieren.",ENG-01,CLS-01 EXT-01 GOV-01 GOV-04 SEM-01 SUM-01 SUM-02 QA-08 QA-02 ENG-07,"Inferenz-Aufrufe laufen asynchron über die Queue
ENG-05,Inferenz-Queue,🧠 KI-Engine & Modell-Anbindung,Backend,Mittel,3,2,Fertig,"Postgres-Jobqueue, Worker, Rückstandsverarbeitung","Asynchrone Warteschlange für Inferenz-Aufrufe, damit lange KI-Anfragen keine Anfrage-Bearbeitung blockieren.",ENG-01,CLS-01 EXT-01 GOV-01 GOV-04 SEM-01 SUM-01 SUM-02 QA-08 QA-02 ENG-07,"Inferenz-Aufrufe laufen asynchron über die Queue
Fehlgeschlagene Aufrufe werden mit Rückverfolgung wiederholt
Warteschlangenstand ist beobachtbar","Lastspitze ohne blockierte Anfragen durchlaufen
Wiederholung nach Fehlschlag im Test nachvollzogen
Warteschlangenstand im Monitoring sichtbar"
ENG-06,Prompt-Vorlagen-Verwaltung (versioniert),🧠 KI-Engine & Modell-Anbindung,Backend,Einfach,2,2,Backlog,"Versionierte Prompt-Vorlagen, PostgreSQL","Verwaltung von Prompt-Vorlagen je Funktion mit Versionierung, damit Änderungen nachvollziehbar und rückrollbar sind.",ENG-01,QA-02,"Prompt-Vorlagen sind versioniert gespeichert
ENG-06,Prompt-Vorlagen-Verwaltung (versioniert),🧠 KI-Engine & Modell-Anbindung,Backend,Einfach,2,2,Fertig,"Versionierte Prompt-Vorlagen, PostgreSQL","Verwaltung von Prompt-Vorlagen je Funktion mit Versionierung, damit Änderungen nachvollziehbar und rückrollbar sind.",ENG-01,QA-02,"Prompt-Vorlagen sind versioniert gespeichert
Frühere Version ist wiederherstellbar
Aktive Version je Funktion ist eindeutig bestimmt","Rollback auf frühere Vorlage im Test erfolgreich
Änderung einer Vorlage ohne Versionsverlust geprüft
Aktive Version für jede Funktion eindeutig ermittelt"
CLS-01,Dokumentklassifizierung (generisches Modell),🏷️ Klassifizierung & Verschlagwortung,Backend,Mittel,3,3,Backlog,"Sprachmodell, Klassifizierungsschema","Dokumentklassifizierung anhand von Inhalt und Struktur über ein generisches, konfigurierbares Klassifizierungsmodell.",ENG-05,CLS-02 CLS-03 CLS-04 CLS-05 WFS-01,"Klassifizierung liefert Kategorie mit Konfidenz
CLS-01,Dokumentklassifizierung (generisches Modell),🏷️ Klassifizierung & Verschlagwortung,Backend,Mittel,3,3,Fertig,"Sprachmodell, Klassifizierungsschema","Dokumentklassifizierung anhand von Inhalt und Struktur über ein generisches, konfigurierbares Klassifizierungsmodell.",ENG-05,CLS-02 CLS-03 CLS-04 CLS-05 WFS-01,"Klassifizierung liefert Kategorie mit Konfidenz
Ergebnis folgt einem definierten Ausgabeschema
Unbekannte Dokumentart wird als solche gekennzeichnet","Genauigkeit an gelabeltem Testset gemessen und dokumentiert
Verhalten bei unbekannter Dokumentart geprüft
Ausgabeschema in allen Testfällen eingehalten"
CLS-02,Dokumenttyp-Erkennung,🏷️ Klassifizierung & Verschlagwortung,Backend,Mittel,3,4,Backlog,"Sprachmodell, Dokumenttyp-Taxonomie","Erkennung des konkreten Dokumenttyps (z. B. Rechnung, Vertrag, Lieferschein) aufbauend auf der generischen Klassifizierung.",CLS-01,QA-03,"Dokumenttyp wird mit Konfidenz vorgeschlagen
CLS-02,Dokumenttyp-Erkennung,🏷️ Klassifizierung & Verschlagwortung,Backend,Mittel,3,4,Fertig,"Sprachmodell, Dokumenttyp-Taxonomie","Erkennung des konkreten Dokumenttyps (z. B. Rechnung, Vertrag, Lieferschein) aufbauend auf der generischen Klassifizierung.",CLS-01,QA-03,"Dokumenttyp wird mit Konfidenz vorgeschlagen
Taxonomie ist je Tenant erweiterbar
Mehrdeutige Fälle werden erkennbar markiert","Trefferquote je Dokumenttyp gemessen und dokumentiert
Erweiterung der Taxonomie ohne Codeänderung geprüft
Mehrdeutiger Testfall korrekt markiert"
CLS-03,Automatische Verschlagwortung,🏷️ Klassifizierung & Verschlagwortung,Backend,Mittel,3,4,Backlog,"Sprachmodell, Tag-Vorschlagslogik","Automatische Vorschläge für Schlagworte auf Basis von Inhalt, bestehender Tag-Taxonomie und Modul-Kontext.",CLS-01,QA-03,"Tag-Vorschläge werden mit Konfidenz angezeigt
CLS-03,Automatische Verschlagwortung,🏷️ Klassifizierung & Verschlagwortung,Backend,Mittel,3,4,Fertig,"Sprachmodell, Tag-Vorschlagslogik","Automatische Vorschläge für Schlagworte auf Basis von Inhalt, bestehender Tag-Taxonomie und Modul-Kontext.",CLS-01,QA-03,"Tag-Vorschläge werden mit Konfidenz angezeigt
Bestehende Tag-Taxonomie wird respektiert statt dupliziert
Vorschlag erfolgt ohne automatische Übernahme","Dopplung bestehender Tags im Test ausgeschlossen
Trefferquote an Testset gemessen und dokumentiert
Keine automatische Übernahme ohne Bestätigung geprüft"
CLS-04,Erkennung wichtiger Inhalte,🏷️ Klassifizierung & Verschlagwortung,Backend,Mittel,3,4,Backlog,"Sprachmodell, Segmentierung","Erkennung besonders relevanter Textabschnitte im Dokument (z. B. Fristen, Kernaussagen) zur Hervorhebung.",CLS-01,QA-03,"Relevante Abschnitte werden mit Position markiert
CLS-04,Erkennung wichtiger Inhalte,🏷️ Klassifizierung & Verschlagwortung,Backend,Mittel,3,4,Fertig,"Sprachmodell, Segmentierung","Erkennung besonders relevanter Textabschnitte im Dokument (z. B. Fristen, Kernaussagen) zur Hervorhebung.",CLS-01,QA-03,"Relevante Abschnitte werden mit Position markiert
Ergebnis ist auf lange Dokumente stabil
Kein relevanter Abschnitt wird stillschweigend verworfen","Erkennung an mehrseitigem Testdokument nachvollzogen
Stabilität bei sehr langen Dokumenten geprüft
Nachvollziehbarkeit der Markierung im Test bestätigt"
CLS-05,Konfidenz-Schwelle & Korrektur-Feedback-Loop,🏷️ Klassifizierung & Verschlagwortung,Backend,Mittel,3,4,Backlog,"Konfidenz-Schwellenwerte, Feedback-Speicherung",Konfigurierbare Konfidenz-Schwelle je Funktion und Erfassung von Nutzerkorrekturen zur laufenden Qualitätsverbesserung.,CLS-01,QA-03,"Schwelle ist je Funktion und Tenant konfigurierbar
CLS-05,Konfidenz-Schwelle & Korrektur-Feedback-Loop,🏷️ Klassifizierung & Verschlagwortung,Backend,Mittel,3,4,Fertig,"Konfidenz-Schwellenwerte, Feedback-Speicherung",Konfigurierbare Konfidenz-Schwelle je Funktion und Erfassung von Nutzerkorrekturen zur laufenden Qualitätsverbesserung.,CLS-01,QA-03,"Schwelle ist je Funktion und Tenant konfigurierbar
Korrektur wird strukturiert erfasst und gespeichert
Auswertung der Korrekturen ist einsehbar","Schwellenwertänderung wirkt ohne Neustart
Korrektur-Feedback im Test vollständig erfasst
Auswertung liefert nachvollziehbare Kennzahlen"
EXT-01,Strukturierte Feld-Extraktion (generisches Modell),📑 Extraktion,Backend,Komplex,4,3,Backlog,"Sprachmodell, Extraktionsschema, JSON-Schema-Validierung","Strukturierte Extraktion konkreter Werte aus Dokumenten (Datum, Betrag, Vertragspartner u. a.) über ein generisches, definiertes Ausgabeschema.",ENG-05,EXT-02 EXT-03 GOV-06,"Extraktion folgt einem definierten Ausgabeschema
EXT-01,Strukturierte Feld-Extraktion (generisches Modell),📑 Extraktion,Backend,Komplex,4,3,Fertig,"Sprachmodell, Extraktionsschema, JSON-Schema-Validierung","Strukturierte Extraktion konkreter Werte aus Dokumenten (Datum, Betrag, Vertragspartner u. a.) über ein generisches, definiertes Ausgabeschema.",ENG-05,EXT-02 EXT-03 GOV-06,"Extraktion folgt einem definierten Ausgabeschema
Jeder Wert trägt einen Konfidenzwert
Fehlender Wert wird als solcher markiert, nicht erraten","Extraktionsgenauigkeit an gelabeltem Testset gemessen
Schemaverletzung im Test zuverlässig abgewiesen
Verhalten bei fehlendem Wert geprüft"
EXT-02,Rechnungsdaten-Extraktion,📑 Extraktion,Backend,Mittel,3,4,Backlog,"Extraktionsschema Rechnung, Sprachmodell","Spezialisiertes Extraktionsschema für Rechnungsdaten: Rechnungsnummer, Betrag, Steuersatz, Fälligkeitsdatum, Absender.",EXT-01,EXT-04,"Rechnungsfelder werden vollständig und typisiert erkannt
EXT-02,Rechnungsdaten-Extraktion,📑 Extraktion,Backend,Mittel,3,4,Fertig,"Extraktionsschema Rechnung, Sprachmodell","Spezialisiertes Extraktionsschema für Rechnungsdaten: Rechnungsnummer, Betrag, Steuersatz, Fälligkeitsdatum, Absender.",EXT-01,EXT-04,"Rechnungsfelder werden vollständig und typisiert erkannt
Mehrere Steuersätze in einer Rechnung werden korrekt zugeordnet
Fehlerhafte Rechnung wird nicht stillschweigend akzeptiert","Genauigkeit an gelabeltem Rechnungs-Testset dokumentiert
Mehrfachsteuersatz-Fall im Test korrekt ausgewertet
Fehlerhafte Testrechnung korrekt zurückgewiesen"
EXT-03,Extraktions-Validierung & Confidence-Score,📑 Extraktion,Backend,Mittel,3,4,Backlog,"Validierungsregeln, Confidence-Scoring","Plausibilitätsprüfung extrahierter Werte (Formate, Wertebereiche, Konsistenz) und Zusammenführung zu einem Gesamt-Confidence-Score.",EXT-01,EXT-04 EXT-05,"Unplausibler Wert wird markiert, nicht stillschweigend übernommen
EXT-03,Extraktions-Validierung & Confidence-Score,📑 Extraktion,Backend,Mittel,3,4,Fertig,"Validierungsregeln, Confidence-Scoring","Plausibilitätsprüfung extrahierter Werte (Formate, Wertebereiche, Konsistenz) und Zusammenführung zu einem Gesamt-Confidence-Score.",EXT-01,EXT-04 EXT-05,"Unplausibler Wert wird markiert, nicht stillschweigend übernommen
Gesamt-Confidence-Score ist nachvollziehbar hergeleitet
Validierungsregeln sind konfigurierbar","Unplausibler Testwert im Test erkannt
Score-Herleitung im Test nachvollzogen
Regeländerung ohne Codeänderung wirksam"
EXT-04,Extraktions-Korrektur-Oberfläche,📑 Extraktion,Frontend,Mittel,3,5,Backlog,"Next.js/React/TypeScript, Formularkomponenten","Oberfläche zur Ansicht, Korrektur und Bestätigung extrahierter Werte vor Übernahme in die Metadaten des aufrufenden Moduls.",EXT-02 EXT-03 SHL-01,,"Vorschläge werden mit Konfidenz angezeigt
EXT-04,Extraktions-Korrektur-Oberfläche,📑 Extraktion,Frontend,Mittel,3,5,Fertig,"Next.js/React/TypeScript, Formularkomponenten","Oberfläche zur Ansicht, Korrektur und Bestätigung extrahierter Werte vor Übernahme in die Metadaten des aufrufenden Moduls.",EXT-02 EXT-03 SHL-01,,"Vorschläge werden mit Konfidenz angezeigt
Nutzer bestätigt oder korrigiert vor Übernahme
Korrektur ist pro Feld einzeln möglich","Bestätigungsfluss im Test vollständig durchlaufen
Korrektur eines einzelnen Felds ohne Seiteneffekt geprüft
Abbruch ohne Übernahme im Test bestätigt"
EXT-05,Extraktions-Ergebnis-Kopplung an Modul-Metadatenfelder,📑 Extraktion,Backend,Mittel,3,5,Backlog,"Modul-Adapter-Schnittstelle, Feld-Mapping",Kopplung bestätigter Extraktionsergebnisse an die Metadatenfelder des aufrufenden Moduls (DMS/Mail) über den Modul-Adapter.,EXT-03,QA-03,"Bestätigter Wert landet im richtigen Metadatenfeld des Moduls
EXT-05,Extraktions-Ergebnis-Kopplung an Modul-Metadatenfelder,📑 Extraktion,Backend,Mittel,3,5,Fertig,"Modul-Adapter-Schnittstelle, Feld-Mapping",Kopplung bestätigter Extraktionsergebnisse an die Metadatenfelder des aufrufenden Moduls (DMS/Mail) über den Modul-Adapter.,EXT-03,QA-03,"Bestätigter Wert landet im richtigen Metadatenfeld des Moduls
Feld-Mapping ist je Modul konfigurierbar
Nicht zuordenbarer Wert wird nicht verworfen, sondern gemeldet","Übernahme in DMS-Metadatenfeld im Test nachvollzogen
Fehlkonfiguriertes Mapping im Test erkannt
Nicht zuordenbarer Wert im Test korrekt gemeldet"
SUM-01,Dokument-Zusammenfassung,📝 Zusammenfassungen,Backend,Mittel,3,3,Backlog,"Sprachmodell, Zusammenfassungs-Pipeline",Automatische Kurz-Zusammenfassung eines Dokuments mit konfigurierbarer Länge und Sprache.,ENG-05,SUM-03 SUM-04,"Zusammenfassung ist inhaltlich belegbar aus dem Original
SUM-01,Dokument-Zusammenfassung,📝 Zusammenfassungen,Backend,Mittel,3,3,Fertig,"Sprachmodell, Zusammenfassungs-Pipeline",Automatische Kurz-Zusammenfassung eines Dokuments mit konfigurierbarer Länge und Sprache.,ENG-05,SUM-03 SUM-04,"Zusammenfassung ist inhaltlich belegbar aus dem Original
Länge ist konfigurierbar
Sehr lange Dokumente werden ohne Absturz verarbeitet","Stichprobe manuell gegen Originaldokument geprüft
Verhalten bei sehr langem Dokument getestet
Konfigurierbare Länge im Test eingehalten"
SUM-02,E-Mail-/Thread-Zusammenfassung,📝 Zusammenfassungen,Backend,Mittel,3,3,Backlog,"Sprachmodell, Thread-Aggregation",Zusammenfassung eines E-Mail-Threads über mehrere Nachrichten hinweg mit Verlaufsbezug.,ENG-05,SUM-03,"Zusammenfassung bildet den Threadverlauf korrekt ab
SUM-02,E-Mail-/Thread-Zusammenfassung,📝 Zusammenfassungen,Backend,Mittel,3,3,Fertig,"Sprachmodell, Thread-Aggregation",Zusammenfassung eines E-Mail-Threads über mehrere Nachrichten hinweg mit Verlaufsbezug.,ENG-05,SUM-03,"Zusammenfassung bildet den Threadverlauf korrekt ab
Zitierte Altnachrichten werden nicht doppelt zusammengefasst
Neue Nachricht aktualisiert die Zusammenfassung","Mehrteiliger Test-Thread korrekt zusammengefasst
Duplizierung von Zitaten im Test ausgeschlossen
Aktualisierung nach neuer Nachricht geprüft"
SUM-03,Zusammenfassungs-Oberfläche,📝 Zusammenfassungen,Frontend,Einfach,2,4,Backlog,Next.js/React/TypeScript,Oberfläche zur Anzeige von Dokument- und Thread-Zusammenfassungen inklusive Verweis auf die Quelle.,SUM-01 SUM-02 SHL-01,,"Zusammenfassung ist am Dokument/Thread sichtbar
SUM-03,Zusammenfassungs-Oberfläche,📝 Zusammenfassungen,Frontend,Einfach,2,4,Fertig,Next.js/React/TypeScript,Oberfläche zur Anzeige von Dokument- und Thread-Zusammenfassungen inklusive Verweis auf die Quelle.,SUM-01 SUM-02 SHL-01,,"Zusammenfassung ist am Dokument/Thread sichtbar
Verweis auf Original ist ein Klick entfernt
Ladezustand ist erkennbar","Anzeige an Beispieldokument und Beispiel-Thread geprüft
Verweis auf Original im Test funktionsfähig
Ladezustand im Test sichtbar"
SUM-04,Zusammenfassungs-Qualitätsbewertung,📝 Zusammenfassungen,Backend,Einfach,2,4,Backlog,"Bewertungsmetriken, Stichprobenprüfung",Qualitätsbewertung erzeugter Zusammenfassungen anhand von Stichproben und einfachen Kennzahlen.,SUM-01,QA-06,"Qualitätskennzahl ist je Zusammenfassungstyp abrufbar
SUM-04,Zusammenfassungs-Qualitätsbewertung,📝 Zusammenfassungen,Backend,Einfach,2,4,Fertig,"Bewertungsmetriken, Stichprobenprüfung",Qualitätsbewertung erzeugter Zusammenfassungen anhand von Stichproben und einfachen Kennzahlen.,SUM-01,QA-06,"Qualitätskennzahl ist je Zusammenfassungstyp abrufbar
Auffällig schlechte Zusammenfassung wird erkennbar markiert
Bewertung ist nachvollziehbar dokumentiert","Kennzahl an Testset berechnet und dokumentiert
Auffälliger Testfall im Test markiert
Nachvollziehbarkeit der Bewertung bestätigt"
SEM-01,Embeddings-Pipeline,🔎 Semantische Suche & Chat,Backend,Mittel,3,3,Backlog,"Embedding-Modell, Batch-Verarbeitung",Pipeline zur Erzeugung von Embeddings für Dokumente und E-Mails inklusive Chunking langer Inhalte.,ENG-05,SEM-02,"Embeddings werden für neue Inhalte automatisch erzeugt
SEM-01,Embeddings-Pipeline,🔎 Semantische Suche & Chat,Backend,Mittel,3,3,Fertig,"Embedding-Modell, Batch-Verarbeitung",Pipeline zur Erzeugung von Embeddings für Dokumente und E-Mails inklusive Chunking langer Inhalte.,ENG-05,SEM-02,"Embeddings werden für neue Inhalte automatisch erzeugt
Lange Inhalte werden sinnvoll in Abschnitte zerlegt
Fehlerhafte Erzeugung wird erkannt und wiederholt","Chunking an langem Testdokument nachvollzogen
Fehlerfall im Test erkannt und wiederholt
Durchsatz an Testmenge dokumentiert"
SEM-02,Vektorindex-Speicherung,🔎 Semantische Suche & Chat,Backend,Mittel,3,4,Backlog,PostgreSQL mit Vektorerweiterung,Speicherung und Indizierung der erzeugten Embeddings inklusive Mandantentrennung.,SEM-01,SEM-03,"Vektorindex ist mandantengetrennt abfragbar
SEM-02,Vektorindex-Speicherung,🔎 Semantische Suche & Chat,Backend,Mittel,3,4,Fertig,PostgreSQL mit Vektorerweiterung,Speicherung und Indizierung der erzeugten Embeddings inklusive Mandantentrennung.,SEM-01,SEM-03,"Vektorindex ist mandantengetrennt abfragbar
Ähnlichkeitssuche liefert stabile Ergebnisse
Löschung eines Dokuments entfernt auch dessen Vektoren","Mandantentrennung im Test bestätigt
Löschung im Test vollständig nachvollzogen
Abfragezeit an Testmenge dokumentiert"
SEM-03,Semantische-Such-API,🔎 Semantische Suche & Chat,Backend,Mittel,3,5,Backlog,"REST-API, Ähnlichkeitssuche",Schnittstelle für semantische Suche über Dokumente/E-Mails eines Tenants mit Relevanz-Ranking.,SEM-02,SEM-04 SEM-06,"Suche liefert nach Relevanz sortierte Treffer
SEM-03,Semantische-Such-API,🔎 Semantische Suche & Chat,Backend,Mittel,3,5,Fertig,"REST-API, Ähnlichkeitssuche",Schnittstelle für semantische Suche über Dokumente/E-Mails eines Tenants mit Relevanz-Ranking.,SEM-02,SEM-04 SEM-06,"Suche liefert nach Relevanz sortierte Treffer
Nur berechtigte Dokumente erscheinen im Ergebnis
Leere Trefferliste wird sauber gemeldet","Relevanz-Ranking an Testkorpus stichprobenartig geprüft
Rechteprüfung im Test bestätigt
Leerfall im Test korrekt behandelt"
SEM-04,Chat-mit-Dokumenten (RAG-Pipeline),🔎 Semantische Suche & Chat,Backend,Komplex,4,6,Backlog,"RAG-Pipeline: Retrieval vor Generation, Sprachmodell","Chat-Oberfläche über Dokumente eines Tenants: Retrieval relevanter Abschnitte vor der Antwort-Generierung, keine Antwort ohne Beleg.",SEM-03,SEM-05 SEM-06 QA-08,"Antwort stützt sich auf tatsächlich abgerufene Abschnitte
SEM-04,Chat-mit-Dokumenten (RAG-Pipeline),🔎 Semantische Suche & Chat,Backend,Komplex,4,6,Fertig,"RAG-Pipeline: Retrieval vor Generation, Sprachmodell","Chat-Oberfläche über Dokumente eines Tenants: Retrieval relevanter Abschnitte vor der Antwort-Generierung, keine Antwort ohne Beleg.",SEM-03,SEM-05 SEM-06 QA-08,"Antwort stützt sich auf tatsächlich abgerufene Abschnitte
Frage ohne belastbaren Treffer wird als solche beantwortet
Antwortzeit bleibt für Chat-Nutzung praktikabel","Beleg-Antwort-Zuordnung an Testfragen nachvollzogen
Fall ohne Treffer im Test korrekt behandelt
Antwortzeit an Testkorpus gemessen"
SEM-05,Quellenverweise & Zitat-Nachvollziehbarkeit,🔎 Semantische Suche & Chat,Backend,Mittel,3,7,Backlog,"Zitat-Verweise, Quellen-Mapping","Mitführen und Anzeigen der Quellenabschnitte je Chat-Antwort, damit jede Aussage auf ein Dokument zurückführbar ist.",SEM-04,QA-04,"Jede Antwort führt mindestens einen Quellenverweis
SEM-05,Quellenverweise & Zitat-Nachvollziehbarkeit,🔎 Semantische Suche & Chat,Backend,Mittel,3,7,Fertig,"Zitat-Verweise, Quellen-Mapping","Mitführen und Anzeigen der Quellenabschnitte je Chat-Antwort, damit jede Aussage auf ein Dokument zurückführbar ist.",SEM-04,QA-04,"Jede Antwort führt mindestens einen Quellenverweis
Verweis führt zum tatsächlichen Abschnitt im Dokument
Antwort ohne Beleg wird nicht als gesichert dargestellt","Quellenverweis an Testfrage stichprobenartig nachvollzogen
Sprung zum Originalabschnitt im Test funktionsfähig
Unbelegte Antwort im Test korrekt gekennzeichnet"
SEM-06,Semantische-Such-/Chat-Oberfläche,🔎 Semantische Suche & Chat,Frontend,Mittel,3,7,Backlog,Next.js/React/TypeScript,Oberfläche für semantische Suche und Dokumenten-Chat inklusive Quellenanzeige und Verlauf.,SEM-03 SEM-04 SHL-01,QA-04,"Suche und Chat sind aus einer Oberfläche erreichbar
SEM-06,Semantische-Such-/Chat-Oberfläche,🔎 Semantische Suche & Chat,Frontend,Mittel,3,7,Fertig,Next.js/React/TypeScript,Oberfläche für semantische Suche und Dokumenten-Chat inklusive Quellenanzeige und Verlauf.,SEM-03 SEM-04 SHL-01,QA-04,"Suche und Chat sind aus einer Oberfläche erreichbar
Quellenverweise sind in der Antwort sichtbar
Verlauf bleibt innerhalb der Sitzung erhalten","Bedienfluss Suche und Chat im Test durchlaufen
Quellenanzeige im Test sichtbar bestätigt
Verlauf nach Navigation im Test erhalten"
WFS-01,Vorschlagsmodell (Routing/Klassifizierung aus Historie),💡 Workflow-Vorschläge,Backend,Mittel,3,4,Backlog,"Historische Auswertung, Sprachmodell/Regelableitung",Ableitung von Routing- und Klassifizierungsvorschlägen aus dem historischen Bearbeitungsverlauf eines Tenants.,CLS-01,WFS-02 QA-06,"Vorschlag stützt sich auf tatsächliche Historie
WFS-01,Vorschlagsmodell (Routing/Klassifizierung aus Historie),💡 Workflow-Vorschläge,Backend,Mittel,3,4,Fertig,"Historische Auswertung, Sprachmodell/Regelableitung",Ableitung von Routing- und Klassifizierungsvorschlägen aus dem historischen Bearbeitungsverlauf eines Tenants.,CLS-01,WFS-02 QA-06,"Vorschlag stützt sich auf tatsächliche Historie
Vorschlag trägt einen Konfidenzwert
Zu geringe Datenlage wird erkannt und gemeldet","Vorschlagsgüte an historischem Testbestand gemessen
Fall geringer Datenlage im Test korrekt behandelt
Konfidenzwert im Test nachvollzogen"
WFS-02,Vorschlags-API (Kopplung Workflow-Board Modul-Adapter),💡 Workflow-Vorschläge,Backend,Mittel,3,5,Backlog,"REST-API, Modul-Adapter-Schnittstelle","Schnittstelle, über die das Workflow-Board Vorschläge für Routing-Entscheidungen abruft.",WFS-01,WFS-03 QA-06,"Workflow-Board kann Vorschläge über die Schnittstelle abrufen
WFS-02,Vorschlags-API (Kopplung Workflow-Board Modul-Adapter),💡 Workflow-Vorschläge,Backend,Mittel,3,5,Fertig,"REST-API, Modul-Adapter-Schnittstelle","Schnittstelle, über die das Workflow-Board Vorschläge für Routing-Entscheidungen abruft.",WFS-01,WFS-03 QA-06,"Workflow-Board kann Vorschläge über die Schnittstelle abrufen
Antwort enthält Vorschlag, Konfidenz und Begründung
Nicht erreichbare AI-Instanz blockiert das Workflow-Board nicht","Abruf aus Sicht des Workflow-Boards im Test nachvollzogen
Ausfallverhalten im Test bestätigt
Antwortformat gegen Vertrag geprüft"
WFS-03,Vorschlags-Feedback-Loop,💡 Workflow-Vorschläge,Backend,Mittel,3,6,Backlog,"Feedback-Speicherung, Nachtrainingslogik","Erfassung, ob ein Vorschlag übernommen oder korrigiert wurde, zur laufenden Verbesserung des Vorschlagsmodells.",WFS-02,QA-06,"Annahme und Korrektur eines Vorschlags werden erfasst
WFS-03,Vorschlags-Feedback-Loop,💡 Workflow-Vorschläge,Backend,Mittel,3,6,Fertig,"Feedback-Speicherung, Nachtrainingslogik","Erfassung, ob ein Vorschlag übernommen oder korrigiert wurde, zur laufenden Verbesserung des Vorschlagsmodells.",WFS-02,QA-06,"Annahme und Korrektur eines Vorschlags werden erfasst
Auswertung der Trefferquote ist einsehbar
Feedback fließt nachvollziehbar in künftige Vorschläge ein","Erfassung von Annahme/Korrektur im Test bestätigt
Trefferquoten-Auswertung im Test nachvollzogen
Wirkung des Feedbacks auf Folgevorschlag geprüft"
GOV-01,Modul-Adapter-Schnittstelle (DMS/Mail registrieren KI-fähige Objekttypen),🛡️ Datenschutz & Governance,Backend,Mittel,3,3,Backlog,"Modul-Adapter-Schnittstelle, Objekttyp-Registry","Schnittstelle, über die DMS und Mail KI-fähige Objekttypen (Dokument, E-Mail, Thread) und deren Felder registrieren, statt eigene KI-Logik zu bauen.",ENG-05,GOV-02 GOV-05 QA-07 GOV-07,"Modul kann Objekttyp mit Feldern registrieren
GOV-01,Modul-Adapter-Schnittstelle (DMS/Mail registrieren KI-fähige Objekttypen),🛡️ Datenschutz & Governance,Backend,Mittel,3,3,Fertig,"Modul-Adapter-Schnittstelle, Objekttyp-Registry","Schnittstelle, über die DMS und Mail KI-fähige Objekttypen (Dokument, E-Mail, Thread) und deren Felder registrieren, statt eigene KI-Logik zu bauen.",ENG-05,GOV-02 GOV-05 QA-07 GOV-07,"Modul kann Objekttyp mit Feldern registrieren
Registrierung ist ohne Codeänderung im AI-Modul möglich
Nicht registrierter Objekttyp wird sauber abgewiesen","Registrierung aus Sicht eines Testmoduls nachvollzogen
Fehlregistrierung im Test korrekt abgewiesen
Zwei Module parallel registriert und geprüft"
GOV-02,Opt-in/Opt-out je Tenant & Funktion,🛡️ Datenschutz & Governance,Backend,Mittel,3,4,Backlog,Feature-Flags je Tenant und Funktion,"Feingranulare Aktivierung/Deaktivierung einzelner KI-Funktionen je Tenant, oberhalb des globalen Core-LIC-02-Schalters.",GOV-01 LIC-02,QA-05,"Jede Funktion ist einzeln je Tenant schaltbar
GOV-02,Opt-in/Opt-out je Tenant & Funktion,🛡️ Datenschutz & Governance,Backend,Mittel,3,4,Fertig,Feature-Flags je Tenant und Funktion,"Feingranulare Aktivierung/Deaktivierung einzelner KI-Funktionen je Tenant, oberhalb des globalen Core-LIC-02-Schalters.",GOV-01 LIC-02,QA-05,"Jede Funktion ist einzeln je Tenant schaltbar
Deaktivierte Funktion wird nicht aufgerufen
Änderung wirkt ohne Neustart","Deaktivierung einer Funktion im Test wirksam bestätigt
Globaler Schalter (Core LIC-02) im Test respektiert
Änderung ohne Neustart im Test nachvollzogen"
GOV-03,Keine Training auf Kundendaten – Datenresidenz-Kontrolle,🛡️ Datenschutz & Governance,Backend,Mittel,3,3,Backlog,"Datenresidenz-Konfiguration, Provider-Routing","Nachvollziehbare, je Tenant konfigurierbare Steuerung, ob Inferenz lokal (Ollama) oder extern erfolgt, mit Ausschluss von Training auf Kundendaten.",ENG-02 ENG-03,QA-05,"Datenresidenz ist je Tenant einsehbar konfiguriert
GOV-03,Keine Training auf Kundendaten – Datenresidenz-Kontrolle,🛡️ Datenschutz & Governance,Backend,Mittel,3,3,Fertig,"Datenresidenz-Konfiguration, Provider-Routing","Nachvollziehbare, je Tenant konfigurierbare Steuerung, ob Inferenz lokal (Ollama) oder extern erfolgt, mit Ausschluss von Training auf Kundendaten.",ENG-02 ENG-03,QA-05,"Datenresidenz ist je Tenant einsehbar konfiguriert
Externe Verarbeitung erfordert ausdrückliche Freigabe
Kein Kundendokument fließt in ein Training ein","Konfiguration lokal/extern im Test nachvollzogen
Fehlende Freigabe verhindert externe Verarbeitung im Test
Trainingsausschluss vertraglich und technisch geprüft"
GOV-04,Kostenkontrolle & Quota (Kopplung Core LIC-03),🛡️ Datenschutz & Governance,Backend,Mittel,3,3,Backlog,"Kostenzähler, Quota-Schwellen, Kopplung Core LIC-03","Verbrauchszählung und Obergrenzen je Tenant für Inferenz-Nutzung, gekoppelt an die Lizenzsteuerung aus Core LIC-03.",ENG-05 LIC-03,QA-05,"Verbrauch ist je Tenant nachvollziehbar erfasst
GOV-04,Kostenkontrolle & Quota (Kopplung Core LIC-03),🛡️ Datenschutz & Governance,Backend,Mittel,3,3,Fertig,"Kostenzähler, Quota-Schwellen, Kopplung Core LIC-03","Verbrauchszählung und Obergrenzen je Tenant für Inferenz-Nutzung, gekoppelt an die Lizenzsteuerung aus Core LIC-03.",ENG-05 LIC-03,QA-05,"Verbrauch ist je Tenant nachvollziehbar erfasst
Überschreitung der Quota wird zuverlässig verhindert
Näherung an die Grenze wird vorab gemeldet","Quota-Überschreitung im Test zuverlässig blockiert
Vorabwarnung im Test ausgelöst
Verbrauchszählung gegen tatsächliche Aufrufe abgeglichen"
GOV-05,KI-Entscheidungs-Nachvollziehbarkeit (Kopplung Core AUD),🛡️ Datenschutz & Governance,Backend,Einfach,2,4,Backlog,"Audit-Ereignisse, Kopplung Core AUD","Protokollierung jeder KI-gestützten Entscheidung (Modell, Prompt-Version, Eingabe-Referenz, Ergebnis) über die Audit-Schnittstelle von Core.",GOV-01,QA-05,"Jede KI-Entscheidung erzeugt einen Audit-Eintrag
GOV-05,KI-Entscheidungs-Nachvollziehbarkeit (Kopplung Core AUD),🛡️ Datenschutz & Governance,Backend,Einfach,2,4,Fertig,"Audit-Ereignisse, Kopplung Core AUD","Protokollierung jeder KI-gestützten Entscheidung (Modell, Prompt-Version, Eingabe-Referenz, Ergebnis) über die Audit-Schnittstelle von Core.",GOV-01,QA-05,"Jede KI-Entscheidung erzeugt einen Audit-Eintrag
Eintrag verweist auf Modell- und Prompt-Version
Eintrag ist nachträglich unveränderlich","Audit-Eintrag an Testentscheidung nachvollzogen
Verweis auf Modell-/Promptversion im Test bestätigt
@@ -212,7 +212,7 @@ Inferenz-Queue verarbeitet mehrere gleichzeitige Klassifizierungs-/Extraktionsan
Verhalten bei Überlast (Queue voll) ist definiert, nicht undefiniert","Lasttest mit parallelen Chat-Anfragen, Antwortzeit gemessen und dokumentiert
Queue-Länge unter Last beobachtet und gegen Zielwert geprüft
Überlast-Szenario simuliert, definiertes Verhalten bestätigt"
GOV-06,Prompt-Injection-Schutz,🛡️ Datenschutz & Governance,Backend,Mittel,3,4,Backlog,"Strukturierte Prompt-Vorlagen, Schema-Validierung, Muster-Erkennung","Härtung gegen Prompt-Injection aus Dokument-/Mailinhalten – strikte Trennung zwischen Systemanweisung und Nutzerinhalt im Prompt-Aufbau, Validierung von Extraktionsergebnissen gegen ein erwartetes Schema, Erkennung auffälliger Instruktions-Muster im Dokumentinhalt vor der Verarbeitung.",ENG-01 EXT-01,QA-05,"Dokumentinhalt wird im Prompt strukturell von der Systemanweisung getrennt (z. B. über klar markierte Abschnitte oder strukturierte Eingabe), nicht als freier Text vermischt
GOV-06,Prompt-Injection-Schutz,🛡️ Datenschutz & Governance,Backend,Mittel,3,4,Fertig,"Strukturierte Prompt-Vorlagen, Schema-Validierung, Muster-Erkennung","Härtung gegen Prompt-Injection aus Dokument-/Mailinhalten – strikte Trennung zwischen Systemanweisung und Nutzerinhalt im Prompt-Aufbau, Validierung von Extraktionsergebnissen gegen ein erwartetes Schema, Erkennung auffälliger Instruktions-Muster im Dokumentinhalt vor der Verarbeitung.",ENG-01 EXT-01,QA-05,"Dokumentinhalt wird im Prompt strukturell von der Systemanweisung getrennt (z. B. über klar markierte Abschnitte oder strukturierte Eingabe), nicht als freier Text vermischt
Extraktionsergebnisse werden gegen ein erwartetes Schema/Format validiert, bevor sie weiterverarbeitet werden
Kein KI-Ergebnis löst allein eine automatische Freigabe-, Lösch- oder Statusänderungs-Aktion aus – jede sicherheitsrelevante Aktion bleibt an eine menschliche Bestätigung gekoppelt (Docspell-Prinzip, hier als Sicherheitsgrenze verankert)","Test mit Dokument, das eine eingebettete Anweisung enthält (""ignoriere vorherige Anweisung..."") – Verarbeitung folgt der eigentlichen Aufgabe, nicht der eingebetteten Anweisung
Test: Extraktionsergebnis außerhalb des erwarteten Schemas wird abgelehnt/markiert, nicht stillschweigend übernommen
@@ -222,13 +222,21 @@ Manueller Bildschirmleser-Durchlauf dokumentiert
Restbefunde sind mit Frist eingeplant","Automatisierte Prüfung über alle Hauptseiten
Vollständiger Ablauf ohne Maus durchgeführt
Auditbericht abgelegt"
GOV-07,Unabhängige Tenant-Validierung bei KI-Objekttyp-Registrierung durch DMS/Mail,🛡️ Datenschutz & Governance,Backend,Mittel,2,10,Backlog,"Service-Credentials (Core API-02), Tenant-Registry-Abgleich (Core TEN-01), Go","GOV-01 nimmt Registrierungen KI-fähiger Objekttypen und Felder von DMS und Mail entgegen. Analog zu Archive `RET-12` und Workflow `ENG-06` muss jede Registrierung den mitgelieferten Tenant-Kontext unabhängig gegen die Core-Registry (TEN-01) validieren, statt der Angabe des registrierenden Moduls zu vertrauen – sonst könnte eine Kompromittierung/Fehlkonfiguration in DMS/Mail dazu führen, dass KI-Funktionen (Klassifizierung, Extraktion, semantische Suche) auf falsch zugeordnete Tenant-Daten angewendet werden.",GOV-01,,"Jede Objekttyp-/Feld-Registrierung aus DMS/Mail wird gegen die Core-Registry auf Tenant-Gültigkeit geprüft, bevor sie übernommen wird
GOV-07,Unabhängige Tenant-Validierung bei KI-Objekttyp-Registrierung durch DMS/Mail,🛡️ Datenschutz & Governance,Backend,Mittel,2,10,Fertig,"Service-Credentials (Core API-02), Tenant-Registry-Abgleich (Core TEN-01), Go","GOV-01 nimmt Registrierungen KI-fähiger Objekttypen und Felder von DMS und Mail entgegen. Analog zu Archive `RET-12` und Workflow `ENG-06` muss jede Registrierung den mitgelieferten Tenant-Kontext unabhängig gegen die Core-Registry (TEN-01) validieren, statt der Angabe des registrierenden Moduls zu vertrauen – sonst könnte eine Kompromittierung/Fehlkonfiguration in DMS/Mail dazu führen, dass KI-Funktionen (Klassifizierung, Extraktion, semantische Suche) auf falsch zugeordnete Tenant-Daten angewendet werden.",GOV-01,,"Jede Objekttyp-/Feld-Registrierung aus DMS/Mail wird gegen die Core-Registry auf Tenant-Gültigkeit geprüft, bevor sie übernommen wird
Eine Registrierung mit einem nicht existierenden oder falschem Tenant-Kontext wird abgelehnt und protokolliert
Bestehende, korrekte Registrierungsabläufe aus GOV-01 funktionieren unverändert","Test: Registrierung mit gültigem, existierendem Tenant-Kontext wird übernommen
Test: Registrierung mit manipuliertem/fremdem Tenant-Kontext wird abgelehnt
Regressionstest: normaler DMS-/Mail-Registrierungsablauf bleibt funktionsfähig"
ENG-07,Ressourcenlimits für die Inferenz-Warteschlange,🧠 KI-Engine & Modell-Anbindung,Backend,Mittel,2,10,Backlog,"Postgres-Jobqueue, Worker-Goroutinen, Ressourcenlimits (Zeit/Eingabegröße/Kontextlänge)","ENG-05 stellt eine asynchrone Warteschlange für Inferenz-Aufrufe bereit, damit lange KI-Anfragen keine Anfrage-Bearbeitung blockieren, ohne Obergrenzen pro Einzelanfrage festzulegen. Eine sehr lange Eingabe (z. B. ein extrem langes Dokument bei Zusammenfassung/Embedding) oder eine bewusst konstruierte Anfrage kann einen Inferenz-Worker unverhältnismäßig lange blockieren und damit andere Mandanten in der gemeinsamen Warteschlange verzögern. Harte Obergrenzen je Anfrage definieren (max. Eingabegröße/Kontextlänge, max. Verarbeitungszeit) – bei Überschreitung wird die Anfrage kontrolliert abgelehnt statt den Worker zu blockieren.",ENG-05,,"Jede Inferenz-Anfrage hat konfigurierbare Obergrenzen für Eingabegröße/Kontextlänge und maximale Verarbeitungszeit
ENG-07,Ressourcenlimits für die Inferenz-Warteschlange,🧠 KI-Engine & Modell-Anbindung,Backend,Mittel,2,10,Fertig,"Postgres-Jobqueue, Worker-Goroutinen, Ressourcenlimits (Zeit/Eingabegröße/Kontextlänge)","ENG-05 stellt eine asynchrone Warteschlange für Inferenz-Aufrufe bereit, damit lange KI-Anfragen keine Anfrage-Bearbeitung blockieren, ohne Obergrenzen pro Einzelanfrage festzulegen. Eine sehr lange Eingabe (z. B. ein extrem langes Dokument bei Zusammenfassung/Embedding) oder eine bewusst konstruierte Anfrage kann einen Inferenz-Worker unverhältnismäßig lange blockieren und damit andere Mandanten in der gemeinsamen Warteschlange verzögern. Harte Obergrenzen je Anfrage definieren (max. Eingabegröße/Kontextlänge, max. Verarbeitungszeit) – bei Überschreitung wird die Anfrage kontrolliert abgelehnt statt den Worker zu blockieren.",ENG-05,,"Jede Inferenz-Anfrage hat konfigurierbare Obergrenzen für Eingabegröße/Kontextlänge und maximale Verarbeitungszeit
Eine Überschreitung führt zur kontrollierten Ablehnung der Anfrage mit klarer Fehlermeldung, nicht zur Blockade des Workers
Andere, gleichzeitig laufende Inferenz-Anfragen (auch anderer Mandanten) bleiben von einer überschreitenden Anfrage unbeeinflusst","Test mit einer Eingabe, die absichtlich die Kontextlängen-/Größenobergrenze überschreitet: Anfrage wird kontrolliert abgelehnt
Lasttest: eine überschreitende Anfrage blockiert nicht die Verarbeitung paralleler, regulärer Anfragen
Regressionstest: normale, innerhalb der Grenzen liegende Anfragen funktionieren unverändert"
ENG-08,AI-App: gebündelter Diensteinstiegspunkt (cmd/ai-app),🧠 KI-Engine & Modell-Anbindung,Backend,Mittel,2,9,Fertig,"net/http.ServeMux, pgxpool, Umgebungsvariablen fuer DSN/Listen-Adresse","Buendelt alle bestehenden AI-API-Pakete (summaryapi, semanticsearchapi, extractapi, residencyapi, routingsuggestapi) inkl. Inferenz-Queue-Worker und Quota-Enforcement zu einem einzigen startbaren Dienst cmd/ai-app, analog connect/cmd/connect-app.",ENG-05 GOV-03 GOV-04 WFS-02,,"cmd/ai-app startet einen einzigen HTTP-Dienst, der alle bestehenden AI-API-Pakete unter ihren jeweiligen Routen bereitstellt
Inferenz-Queue-Worker und Quota-Enforcement sind beim Start korrekt verdrahtet (nicht nur die HTTP-Handler ohne funktionierenden Hintergrundprozess)
DSN und Listen-Adresse ausschliesslich ueber Umgebungsvariablen, keine Zugangsdaten im Code
Fehlende Pflicht-Umgebungsvariable fuehrt zu klarer Fehlermeldung beim Start, nicht zu einem stillen Absturz
Dienst startet real auf Host 204 und beantwortet mindestens einen Endpunkt je eingebundenem API-Paket","Realer Start auf Host 204 mit Wegwerf-DB, mindestens ein Aufruf je eingebundenem API-Paket erfolgreich
Ein echter Inferenz-Auftrag durchlaeuft die Warteschlange real bis zum Abschluss
Fehlende Pflicht-Umgebungsvariable: Dienst beendet sich mit klarer Fehlermeldung, kein Port offen
Bestehende Modul-Testsuite bleibt unveraendert gruen"
1 Code Titel Epic Rolle Komplexitaet Aufwand_PT Welle Status Technik Beschreibung Haengt_ab_von Schaltet_frei Akzeptanzkriterien Pruefungen
2 ENG-01 Provider-Interface (OpenAI-kompatibel, austauschbar) 🧠 KI-Engine & Modell-Anbindung Backend Mittel 3 1 Backlog Fertig Go-Interface, Chat-/Completion-/Embedding-Abstraktion Einheitliche Schnittstelle für Inferenz-Aufrufe (Chat, Completion, Embedding), OpenAI-kompatibles Anfrage-/Antwortformat, austauschbar hinter einem Provider-Interface. ENG-02 ENG-03 ENG-04 ENG-05 ENG-06 GOV-06 Provider-Interface deckt Chat, Completion und Embedding ab Ein neuer Provider lässt sich ohne Änderung der Aufrufer einbinden Fehler eines Providers werden einheitlich abgebildet Zwei Provider-Implementierungen gegen dasselbe Interface getestet Timeout- und Fehlerfall am Interface geprüft Vertrag per Contract-Test abgesichert
3 ENG-02 Ollama-Adapter (lokal, Standard) 🧠 KI-Engine & Modell-Anbindung Backend Mittel 3 2 Backlog Fertig Ollama-HTTP-API, lokale Modell-Bereitstellung Adapter für lokal gehostete Ollama-Instanz als Standard-Provider, inklusive Modell-Warmup und Health-Check. ENG-01 GOV-03 QA-02 Ollama-Adapter erfüllt das Provider-Interface vollständig Nicht erreichbare Ollama-Instanz wird erkannt und gemeldet Standard-Provider ist ohne weitere Konfiguration aktiv Modellgrößen-Empfehlung je Betriebsstufe ist dokumentiert Anfrage gegen lokale Ollama-Instanz erfolgreich beantwortet Ausfall der Instanz führt zu klarer Fehlermeldung, nicht zu Absturz Modellwechsel ohne Dienst-Neustart geprüft Dokumentierte Modellgrößen-Empfehlung mit tatsächlichem Ressourcenverbrauch abgeglichen
4 ENG-03 Externer-API-Adapter (optional) 🧠 KI-Engine & Modell-Anbindung Backend Mittel 3 2 Backlog Fertig OpenAI-kompatible Cloud-API, API-Schlüssel-Verwaltung Optionaler Adapter für externe, OpenAI-kompatible Cloud-Anbieter als Alternative zum lokalen Standardbetrieb. ENG-01 GOV-03 QA-02 Externer Adapter erfüllt das Provider-Interface vollständig Aktivierung ist ausdrücklich und je Tenant konfigurierbar Zugangsdaten liegen ausschließlich in Umgebungsvariablen Anfrage gegen externen Anbieter erfolgreich beantwortet Deaktivierter externer Adapter wird nie automatisch verwendet Kein Dokumentinhalt verlässt das System ohne explizite Freigabe
5 ENG-04 Modellverwaltung & -auswahl je Tenant 🧠 KI-Engine & Modell-Anbindung Backend Mittel 3 2 Backlog Fertig Modellregister, Tenant-Konfiguration, PostgreSQL Verwaltung verfügbarer Modelle je Provider und Auswahl des aktiven Modells je Tenant und Funktion. ENG-01 QA-02 Modelle sind je Tenant konfigurierbar hinterlegt Modellwechsel wirkt ohne Neustart Nicht verfügbares Modell wird beim Speichern abgewiesen Modellwechsel im Test sofort wirksam Fehlkonfiguration wird beim Speichern verhindert Mandantentrennung der Modellauswahl geprüft
6 ENG-05 Inferenz-Queue 🧠 KI-Engine & Modell-Anbindung Backend Mittel 3 2 Backlog Fertig Postgres-Jobqueue, Worker, Rückstandsverarbeitung Asynchrone Warteschlange für Inferenz-Aufrufe, damit lange KI-Anfragen keine Anfrage-Bearbeitung blockieren. ENG-01 CLS-01 EXT-01 GOV-01 GOV-04 SEM-01 SUM-01 SUM-02 QA-08 QA-02 ENG-07 Inferenz-Aufrufe laufen asynchron über die Queue Fehlgeschlagene Aufrufe werden mit Rückverfolgung wiederholt Warteschlangenstand ist beobachtbar Lastspitze ohne blockierte Anfragen durchlaufen Wiederholung nach Fehlschlag im Test nachvollzogen Warteschlangenstand im Monitoring sichtbar
7 ENG-06 Prompt-Vorlagen-Verwaltung (versioniert) 🧠 KI-Engine & Modell-Anbindung Backend Einfach 2 2 Backlog Fertig Versionierte Prompt-Vorlagen, PostgreSQL Verwaltung von Prompt-Vorlagen je Funktion mit Versionierung, damit Änderungen nachvollziehbar und rückrollbar sind. ENG-01 QA-02 Prompt-Vorlagen sind versioniert gespeichert Frühere Version ist wiederherstellbar Aktive Version je Funktion ist eindeutig bestimmt Rollback auf frühere Vorlage im Test erfolgreich Änderung einer Vorlage ohne Versionsverlust geprüft Aktive Version für jede Funktion eindeutig ermittelt
8 CLS-01 Dokumentklassifizierung (generisches Modell) 🏷️ Klassifizierung & Verschlagwortung Backend Mittel 3 3 Backlog Fertig Sprachmodell, Klassifizierungsschema Dokumentklassifizierung anhand von Inhalt und Struktur über ein generisches, konfigurierbares Klassifizierungsmodell. ENG-05 CLS-02 CLS-03 CLS-04 CLS-05 WFS-01 Klassifizierung liefert Kategorie mit Konfidenz Ergebnis folgt einem definierten Ausgabeschema Unbekannte Dokumentart wird als solche gekennzeichnet Genauigkeit an gelabeltem Testset gemessen und dokumentiert Verhalten bei unbekannter Dokumentart geprüft Ausgabeschema in allen Testfällen eingehalten
9 CLS-02 Dokumenttyp-Erkennung 🏷️ Klassifizierung & Verschlagwortung Backend Mittel 3 4 Backlog Fertig Sprachmodell, Dokumenttyp-Taxonomie Erkennung des konkreten Dokumenttyps (z. B. Rechnung, Vertrag, Lieferschein) aufbauend auf der generischen Klassifizierung. CLS-01 QA-03 Dokumenttyp wird mit Konfidenz vorgeschlagen Taxonomie ist je Tenant erweiterbar Mehrdeutige Fälle werden erkennbar markiert Trefferquote je Dokumenttyp gemessen und dokumentiert Erweiterung der Taxonomie ohne Codeänderung geprüft Mehrdeutiger Testfall korrekt markiert
10 CLS-03 Automatische Verschlagwortung 🏷️ Klassifizierung & Verschlagwortung Backend Mittel 3 4 Backlog Fertig Sprachmodell, Tag-Vorschlagslogik Automatische Vorschläge für Schlagworte auf Basis von Inhalt, bestehender Tag-Taxonomie und Modul-Kontext. CLS-01 QA-03 Tag-Vorschläge werden mit Konfidenz angezeigt Bestehende Tag-Taxonomie wird respektiert statt dupliziert Vorschlag erfolgt ohne automatische Übernahme Dopplung bestehender Tags im Test ausgeschlossen Trefferquote an Testset gemessen und dokumentiert Keine automatische Übernahme ohne Bestätigung geprüft
11 CLS-04 Erkennung wichtiger Inhalte 🏷️ Klassifizierung & Verschlagwortung Backend Mittel 3 4 Backlog Fertig Sprachmodell, Segmentierung Erkennung besonders relevanter Textabschnitte im Dokument (z. B. Fristen, Kernaussagen) zur Hervorhebung. CLS-01 QA-03 Relevante Abschnitte werden mit Position markiert Ergebnis ist auf lange Dokumente stabil Kein relevanter Abschnitt wird stillschweigend verworfen Erkennung an mehrseitigem Testdokument nachvollzogen Stabilität bei sehr langen Dokumenten geprüft Nachvollziehbarkeit der Markierung im Test bestätigt
12 CLS-05 Konfidenz-Schwelle & Korrektur-Feedback-Loop 🏷️ Klassifizierung & Verschlagwortung Backend Mittel 3 4 Backlog Fertig Konfidenz-Schwellenwerte, Feedback-Speicherung Konfigurierbare Konfidenz-Schwelle je Funktion und Erfassung von Nutzerkorrekturen zur laufenden Qualitätsverbesserung. CLS-01 QA-03 Schwelle ist je Funktion und Tenant konfigurierbar Korrektur wird strukturiert erfasst und gespeichert Auswertung der Korrekturen ist einsehbar Schwellenwertänderung wirkt ohne Neustart Korrektur-Feedback im Test vollständig erfasst Auswertung liefert nachvollziehbare Kennzahlen
13 EXT-01 Strukturierte Feld-Extraktion (generisches Modell) 📑 Extraktion Backend Komplex 4 3 Backlog Fertig Sprachmodell, Extraktionsschema, JSON-Schema-Validierung Strukturierte Extraktion konkreter Werte aus Dokumenten (Datum, Betrag, Vertragspartner u. a.) über ein generisches, definiertes Ausgabeschema. ENG-05 EXT-02 EXT-03 GOV-06 Extraktion folgt einem definierten Ausgabeschema Jeder Wert trägt einen Konfidenzwert Fehlender Wert wird als solcher markiert, nicht erraten Extraktionsgenauigkeit an gelabeltem Testset gemessen Schemaverletzung im Test zuverlässig abgewiesen Verhalten bei fehlendem Wert geprüft
14 EXT-02 Rechnungsdaten-Extraktion 📑 Extraktion Backend Mittel 3 4 Backlog Fertig Extraktionsschema Rechnung, Sprachmodell Spezialisiertes Extraktionsschema für Rechnungsdaten: Rechnungsnummer, Betrag, Steuersatz, Fälligkeitsdatum, Absender. EXT-01 EXT-04 Rechnungsfelder werden vollständig und typisiert erkannt Mehrere Steuersätze in einer Rechnung werden korrekt zugeordnet Fehlerhafte Rechnung wird nicht stillschweigend akzeptiert Genauigkeit an gelabeltem Rechnungs-Testset dokumentiert Mehrfachsteuersatz-Fall im Test korrekt ausgewertet Fehlerhafte Testrechnung korrekt zurückgewiesen
15 EXT-03 Extraktions-Validierung & Confidence-Score 📑 Extraktion Backend Mittel 3 4 Backlog Fertig Validierungsregeln, Confidence-Scoring Plausibilitätsprüfung extrahierter Werte (Formate, Wertebereiche, Konsistenz) und Zusammenführung zu einem Gesamt-Confidence-Score. EXT-01 EXT-04 EXT-05 Unplausibler Wert wird markiert, nicht stillschweigend übernommen Gesamt-Confidence-Score ist nachvollziehbar hergeleitet Validierungsregeln sind konfigurierbar Unplausibler Testwert im Test erkannt Score-Herleitung im Test nachvollzogen Regeländerung ohne Codeänderung wirksam
16 EXT-04 Extraktions-Korrektur-Oberfläche 📑 Extraktion Frontend Mittel 3 5 Backlog Fertig Next.js/React/TypeScript, Formularkomponenten Oberfläche zur Ansicht, Korrektur und Bestätigung extrahierter Werte vor Übernahme in die Metadaten des aufrufenden Moduls. EXT-02 EXT-03 SHL-01 Vorschläge werden mit Konfidenz angezeigt Nutzer bestätigt oder korrigiert vor Übernahme Korrektur ist pro Feld einzeln möglich Bestätigungsfluss im Test vollständig durchlaufen Korrektur eines einzelnen Felds ohne Seiteneffekt geprüft Abbruch ohne Übernahme im Test bestätigt
17 EXT-05 Extraktions-Ergebnis-Kopplung an Modul-Metadatenfelder 📑 Extraktion Backend Mittel 3 5 Backlog Fertig Modul-Adapter-Schnittstelle, Feld-Mapping Kopplung bestätigter Extraktionsergebnisse an die Metadatenfelder des aufrufenden Moduls (DMS/Mail) über den Modul-Adapter. EXT-03 QA-03 Bestätigter Wert landet im richtigen Metadatenfeld des Moduls Feld-Mapping ist je Modul konfigurierbar Nicht zuordenbarer Wert wird nicht verworfen, sondern gemeldet Übernahme in DMS-Metadatenfeld im Test nachvollzogen Fehlkonfiguriertes Mapping im Test erkannt Nicht zuordenbarer Wert im Test korrekt gemeldet
18 SUM-01 Dokument-Zusammenfassung 📝 Zusammenfassungen Backend Mittel 3 3 Backlog Fertig Sprachmodell, Zusammenfassungs-Pipeline Automatische Kurz-Zusammenfassung eines Dokuments mit konfigurierbarer Länge und Sprache. ENG-05 SUM-03 SUM-04 Zusammenfassung ist inhaltlich belegbar aus dem Original Länge ist konfigurierbar Sehr lange Dokumente werden ohne Absturz verarbeitet Stichprobe manuell gegen Originaldokument geprüft Verhalten bei sehr langem Dokument getestet Konfigurierbare Länge im Test eingehalten
19 SUM-02 E-Mail-/Thread-Zusammenfassung 📝 Zusammenfassungen Backend Mittel 3 3 Backlog Fertig Sprachmodell, Thread-Aggregation Zusammenfassung eines E-Mail-Threads über mehrere Nachrichten hinweg mit Verlaufsbezug. ENG-05 SUM-03 Zusammenfassung bildet den Threadverlauf korrekt ab Zitierte Altnachrichten werden nicht doppelt zusammengefasst Neue Nachricht aktualisiert die Zusammenfassung Mehrteiliger Test-Thread korrekt zusammengefasst Duplizierung von Zitaten im Test ausgeschlossen Aktualisierung nach neuer Nachricht geprüft
20 SUM-03 Zusammenfassungs-Oberfläche 📝 Zusammenfassungen Frontend Einfach 2 4 Backlog Fertig Next.js/React/TypeScript Oberfläche zur Anzeige von Dokument- und Thread-Zusammenfassungen inklusive Verweis auf die Quelle. SUM-01 SUM-02 SHL-01 Zusammenfassung ist am Dokument/Thread sichtbar Verweis auf Original ist ein Klick entfernt Ladezustand ist erkennbar Anzeige an Beispieldokument und Beispiel-Thread geprüft Verweis auf Original im Test funktionsfähig Ladezustand im Test sichtbar
21 SUM-04 Zusammenfassungs-Qualitätsbewertung 📝 Zusammenfassungen Backend Einfach 2 4 Backlog Fertig Bewertungsmetriken, Stichprobenprüfung Qualitätsbewertung erzeugter Zusammenfassungen anhand von Stichproben und einfachen Kennzahlen. SUM-01 QA-06 Qualitätskennzahl ist je Zusammenfassungstyp abrufbar Auffällig schlechte Zusammenfassung wird erkennbar markiert Bewertung ist nachvollziehbar dokumentiert Kennzahl an Testset berechnet und dokumentiert Auffälliger Testfall im Test markiert Nachvollziehbarkeit der Bewertung bestätigt
22 SEM-01 Embeddings-Pipeline 🔎 Semantische Suche & Chat Backend Mittel 3 3 Backlog Fertig Embedding-Modell, Batch-Verarbeitung Pipeline zur Erzeugung von Embeddings für Dokumente und E-Mails inklusive Chunking langer Inhalte. ENG-05 SEM-02 Embeddings werden für neue Inhalte automatisch erzeugt Lange Inhalte werden sinnvoll in Abschnitte zerlegt Fehlerhafte Erzeugung wird erkannt und wiederholt Chunking an langem Testdokument nachvollzogen Fehlerfall im Test erkannt und wiederholt Durchsatz an Testmenge dokumentiert
23 SEM-02 Vektorindex-Speicherung 🔎 Semantische Suche & Chat Backend Mittel 3 4 Backlog Fertig PostgreSQL mit Vektorerweiterung Speicherung und Indizierung der erzeugten Embeddings inklusive Mandantentrennung. SEM-01 SEM-03 Vektorindex ist mandantengetrennt abfragbar Ähnlichkeitssuche liefert stabile Ergebnisse Löschung eines Dokuments entfernt auch dessen Vektoren Mandantentrennung im Test bestätigt Löschung im Test vollständig nachvollzogen Abfragezeit an Testmenge dokumentiert
24 SEM-03 Semantische-Such-API 🔎 Semantische Suche & Chat Backend Mittel 3 5 Backlog Fertig REST-API, Ähnlichkeitssuche Schnittstelle für semantische Suche über Dokumente/E-Mails eines Tenants mit Relevanz-Ranking. SEM-02 SEM-04 SEM-06 Suche liefert nach Relevanz sortierte Treffer Nur berechtigte Dokumente erscheinen im Ergebnis Leere Trefferliste wird sauber gemeldet Relevanz-Ranking an Testkorpus stichprobenartig geprüft Rechteprüfung im Test bestätigt Leerfall im Test korrekt behandelt
25 SEM-04 Chat-mit-Dokumenten (RAG-Pipeline) 🔎 Semantische Suche & Chat Backend Komplex 4 6 Backlog Fertig RAG-Pipeline: Retrieval vor Generation, Sprachmodell Chat-Oberfläche über Dokumente eines Tenants: Retrieval relevanter Abschnitte vor der Antwort-Generierung, keine Antwort ohne Beleg. SEM-03 SEM-05 SEM-06 QA-08 Antwort stützt sich auf tatsächlich abgerufene Abschnitte Frage ohne belastbaren Treffer wird als solche beantwortet Antwortzeit bleibt für Chat-Nutzung praktikabel Beleg-Antwort-Zuordnung an Testfragen nachvollzogen Fall ohne Treffer im Test korrekt behandelt Antwortzeit an Testkorpus gemessen
26 SEM-05 Quellenverweise & Zitat-Nachvollziehbarkeit 🔎 Semantische Suche & Chat Backend Mittel 3 7 Backlog Fertig Zitat-Verweise, Quellen-Mapping Mitführen und Anzeigen der Quellenabschnitte je Chat-Antwort, damit jede Aussage auf ein Dokument zurückführbar ist. SEM-04 QA-04 Jede Antwort führt mindestens einen Quellenverweis Verweis führt zum tatsächlichen Abschnitt im Dokument Antwort ohne Beleg wird nicht als gesichert dargestellt Quellenverweis an Testfrage stichprobenartig nachvollzogen Sprung zum Originalabschnitt im Test funktionsfähig Unbelegte Antwort im Test korrekt gekennzeichnet
27 SEM-06 Semantische-Such-/Chat-Oberfläche 🔎 Semantische Suche & Chat Frontend Mittel 3 7 Backlog Fertig Next.js/React/TypeScript Oberfläche für semantische Suche und Dokumenten-Chat inklusive Quellenanzeige und Verlauf. SEM-03 SEM-04 SHL-01 QA-04 Suche und Chat sind aus einer Oberfläche erreichbar Quellenverweise sind in der Antwort sichtbar Verlauf bleibt innerhalb der Sitzung erhalten Bedienfluss Suche und Chat im Test durchlaufen Quellenanzeige im Test sichtbar bestätigt Verlauf nach Navigation im Test erhalten
28 WFS-01 Vorschlagsmodell (Routing/Klassifizierung aus Historie) 💡 Workflow-Vorschläge Backend Mittel 3 4 Backlog Fertig Historische Auswertung, Sprachmodell/Regelableitung Ableitung von Routing- und Klassifizierungsvorschlägen aus dem historischen Bearbeitungsverlauf eines Tenants. CLS-01 WFS-02 QA-06 Vorschlag stützt sich auf tatsächliche Historie Vorschlag trägt einen Konfidenzwert Zu geringe Datenlage wird erkannt und gemeldet Vorschlagsgüte an historischem Testbestand gemessen Fall geringer Datenlage im Test korrekt behandelt Konfidenzwert im Test nachvollzogen
29 WFS-02 Vorschlags-API (Kopplung Workflow-Board Modul-Adapter) 💡 Workflow-Vorschläge Backend Mittel 3 5 Backlog Fertig REST-API, Modul-Adapter-Schnittstelle Schnittstelle, über die das Workflow-Board Vorschläge für Routing-Entscheidungen abruft. WFS-01 WFS-03 QA-06 Workflow-Board kann Vorschläge über die Schnittstelle abrufen Antwort enthält Vorschlag, Konfidenz und Begründung Nicht erreichbare AI-Instanz blockiert das Workflow-Board nicht Abruf aus Sicht des Workflow-Boards im Test nachvollzogen Ausfallverhalten im Test bestätigt Antwortformat gegen Vertrag geprüft
30 WFS-03 Vorschlags-Feedback-Loop 💡 Workflow-Vorschläge Backend Mittel 3 6 Backlog Fertig Feedback-Speicherung, Nachtrainingslogik Erfassung, ob ein Vorschlag übernommen oder korrigiert wurde, zur laufenden Verbesserung des Vorschlagsmodells. WFS-02 QA-06 Annahme und Korrektur eines Vorschlags werden erfasst Auswertung der Trefferquote ist einsehbar Feedback fließt nachvollziehbar in künftige Vorschläge ein Erfassung von Annahme/Korrektur im Test bestätigt Trefferquoten-Auswertung im Test nachvollzogen Wirkung des Feedbacks auf Folgevorschlag geprüft
31 GOV-01 Modul-Adapter-Schnittstelle (DMS/Mail registrieren KI-fähige Objekttypen) 🛡️ Datenschutz & Governance Backend Mittel 3 3 Backlog Fertig Modul-Adapter-Schnittstelle, Objekttyp-Registry Schnittstelle, über die DMS und Mail KI-fähige Objekttypen (Dokument, E-Mail, Thread) und deren Felder registrieren, statt eigene KI-Logik zu bauen. ENG-05 GOV-02 GOV-05 QA-07 GOV-07 Modul kann Objekttyp mit Feldern registrieren Registrierung ist ohne Codeänderung im AI-Modul möglich Nicht registrierter Objekttyp wird sauber abgewiesen Registrierung aus Sicht eines Testmoduls nachvollzogen Fehlregistrierung im Test korrekt abgewiesen Zwei Module parallel registriert und geprüft
32 GOV-02 Opt-in/Opt-out je Tenant & Funktion 🛡️ Datenschutz & Governance Backend Mittel 3 4 Backlog Fertig Feature-Flags je Tenant und Funktion Feingranulare Aktivierung/Deaktivierung einzelner KI-Funktionen je Tenant, oberhalb des globalen Core-LIC-02-Schalters. GOV-01 LIC-02 QA-05 Jede Funktion ist einzeln je Tenant schaltbar Deaktivierte Funktion wird nicht aufgerufen Änderung wirkt ohne Neustart Deaktivierung einer Funktion im Test wirksam bestätigt Globaler Schalter (Core LIC-02) im Test respektiert Änderung ohne Neustart im Test nachvollzogen
33 GOV-03 Keine Training auf Kundendaten – Datenresidenz-Kontrolle 🛡️ Datenschutz & Governance Backend Mittel 3 3 Backlog Fertig Datenresidenz-Konfiguration, Provider-Routing Nachvollziehbare, je Tenant konfigurierbare Steuerung, ob Inferenz lokal (Ollama) oder extern erfolgt, mit Ausschluss von Training auf Kundendaten. ENG-02 ENG-03 QA-05 Datenresidenz ist je Tenant einsehbar konfiguriert Externe Verarbeitung erfordert ausdrückliche Freigabe Kein Kundendokument fließt in ein Training ein Konfiguration lokal/extern im Test nachvollzogen Fehlende Freigabe verhindert externe Verarbeitung im Test Trainingsausschluss vertraglich und technisch geprüft
34 GOV-04 Kostenkontrolle & Quota (Kopplung Core LIC-03) 🛡️ Datenschutz & Governance Backend Mittel 3 3 Backlog Fertig Kostenzähler, Quota-Schwellen, Kopplung Core LIC-03 Verbrauchszählung und Obergrenzen je Tenant für Inferenz-Nutzung, gekoppelt an die Lizenzsteuerung aus Core LIC-03. ENG-05 LIC-03 QA-05 Verbrauch ist je Tenant nachvollziehbar erfasst Überschreitung der Quota wird zuverlässig verhindert Näherung an die Grenze wird vorab gemeldet Quota-Überschreitung im Test zuverlässig blockiert Vorabwarnung im Test ausgelöst Verbrauchszählung gegen tatsächliche Aufrufe abgeglichen
35 GOV-05 KI-Entscheidungs-Nachvollziehbarkeit (Kopplung Core AUD) 🛡️ Datenschutz & Governance Backend Einfach 2 4 Backlog Fertig Audit-Ereignisse, Kopplung Core AUD Protokollierung jeder KI-gestützten Entscheidung (Modell, Prompt-Version, Eingabe-Referenz, Ergebnis) über die Audit-Schnittstelle von Core. GOV-01 QA-05 Jede KI-Entscheidung erzeugt einen Audit-Eintrag Eintrag verweist auf Modell- und Prompt-Version Eintrag ist nachträglich unveränderlich Audit-Eintrag an Testentscheidung nachvollzogen Verweis auf Modell-/Promptversion im Test bestätigt Unveränderlichkeit des Eintrags im Test geprüft
36 QA-01 Teststrategie AI ✅ Prüfungen & Qualitätssicherung Backend Einfach 2 1 Backlog Teststrategie, anonymisierter Testdatenbestand Festlegen, was auf welcher Ebene geprüft wird, und Aufbau eines realistischen, anonymisierten Testdatenbestands mit gelabelten Referenzdokumenten für KI-Funktionen. Teststrategie ist je Funktion dokumentiert Testdatenbestand ist anonymisiert und gelabelt Referenzdokumente decken die wichtigsten Dokumentarten ab Pflichttests für sicherheitsrelevanten Code (Tenant-Scoping, Zugriffsprüfung, Auth-nahe Logik) sind als verbindliches Merge-Gate verankert – kein Merge auf solchen Code ohne Test, analog Core QA-01 Testdatenbestand auf Anonymisierung geprüft Abdeckung der Dokumentarten dokumentiert Teststrategie von zweiter Person nachvollzogen
37 QA-02 Prüfgate Engine & Modellanbindung ✅ Prüfungen & Qualitätssicherung Backend Einfach 2 3 Backlog Integrationstests Engine/Modelle Prüfen von Provider-Austauschbarkeit, Modellverwaltung, Inferenz-Queue und Prompt-Versionierung. ENG-06 ENG-02 ENG-03 ENG-04 ENG-05 QA-06 Providerwechsel funktioniert ohne Aufrufer-Änderung Warteschlange verarbeitet Lastspitzen ohne Verlust Prompt-Rollback funktioniert nachweislich Providerwechsel im Test nachvollzogen Lastspitzen-Test dokumentiert Rollback-Test dokumentiert
38 QA-03 Prüfgate Klassifizierung & Extraktion ✅ Prüfungen & Qualitätssicherung Backend Einfach 2 6 Backlog Datenqualitätstests Klassifizierung/Extraktion Prüfen von Klassifizierungs- und Extraktionsgüte gegen den Referenzkorpus sowie der Korrektur-Feedback-Schleife. CLS-05 EXT-05 CLS-02 CLS-03 CLS-04 QA-06 Klassifizierungsgenauigkeit erreicht die Zielgenauigkeit Extraktionsgenauigkeit erreicht die Zielgenauigkeit Korrektur-Feedback wirkt nachweislich auf künftige Vorschläge Genauigkeit an Referenzkorpus dokumentiert Feedback-Wirkung im Test nachvollzogen Ausgabeschema in allen Testfällen eingehalten
39 QA-04 Prüfgate Semantische Suche & Chat ✅ Prüfungen & Qualitätssicherung Backend Einfach 2 8 Backlog End-to-End-Tests Suche/Chat Prüfen von Suchqualität, RAG-Antwortgüte und Quellenverweis-Nachvollziehbarkeit. SEM-06 SEM-05 QA-06 Suchqualität an Testkorpus dokumentiert Chat-Antworten sind durchgängig mit Quelle belegt Unbelegte Antwort wird zuverlässig gekennzeichnet Relevanz-Stichprobe dokumentiert Beleg-Antwort-Zuordnung an Testfragen dokumentiert Antwortzeit an Testkorpus dokumentiert
40 QA-05 Datenschutz- & Governance-Prüfung ✅ Prüfungen & Qualitätssicherung Backend Mittel 3 5 Backlog Datenschutz- und Governance-Prüfung Prüfen von Opt-in/Opt-out, Datenresidenz-Kontrolle, Trainingsausschluss, Kostenkontrolle und Entscheidungs-Nachvollziehbarkeit. GOV-05 GOV-02 GOV-03 GOV-04 GOV-06 QA-06 Opt-out einer Funktion wird in der Praxis respektiert Datenresidenz-Konfiguration wird eingehalten Jede geprüfte Entscheidung ist im Audit nachvollziehbar Opt-out-Fall im Test bestätigt Datenresidenz-Fall lokal und extern geprüft Audit-Nachvollziehbarkeit an Stichprobe bestätigt
41 QA-06 Abnahme-Prüfung AI ✅ Prüfungen & Qualitätssicherung Backend Einfach 2 9 Backlog Abnahmeprüfung, Gesamtprotokoll Zusammenführende Abnahmeprüfung aller vorangehenden AI-Prüfgates zu einem Gesamtprotokoll vor Freigabe des Moduls. QA-02 QA-03 QA-04 QA-05 QA-07 QA-08 QA-09 SUM-04 WFS-01 WFS-02 WFS-03 Alle vorangehenden Prüfgates sind bestanden dokumentiert Gesamtprotokoll ist an einem Ort abgelegt Offene Punkte sind mit Verantwortlichkeit vermerkt Vollständigkeit des Gesamtprotokolls geprüft Rückverfolgbarkeit zu Einzelprüfgates bestätigt Freigabeentscheidung dokumentiert
42 QA-07 Schnittstellen-Vertragstests ✅ Prüfungen & Qualitätssicherung Backend Mittel 3 4 Backlog Vertragstests, CI-Pipeline Vertragstests für die AI-Modul-Adapter-Schnittstelle, über die DMS und Mail KI-fähige Objekttypen registrieren – Breaking Changes werden automatisiert erkannt. GOV-01 QA-06 Vertragstests decken die Modul-Adapter-Schnittstelle GOV-01 ab Ein absichtlich brechender Schema-Wechsel lässt die Vertragstests fehlschlagen Vertragstests laufen automatisiert in der CI, nicht nur manuell Testlauf gegen aktuellen Stand grün Simulierte Breaking Change wird erkannt CI-Integration nachgewiesen
43 QA-08 Last- & Leistungstest ✅ Prüfungen & Qualitätssicherung Backend Mittel 3 7 Backlog Lastgenerator, Messprotokoll Lasttest für die Inferenz-Queue und den Chat-mit-Dokumenten-Pfad unter realistischer paralleler Nutzung – insbesondere ob die dort zugesicherte 'keine spürbare Verzögerung' unter Last hält. ENG-05 SEM-04 QA-06 Definierte Ziel-Antwortzeit für Chat-Anfragen unter paralleler Last eingehalten Inferenz-Queue verarbeitet mehrere gleichzeitige Klassifizierungs-/Extraktionsanfragen ohne unkontrolliertes Anwachsen der Warteschlange Verhalten bei Überlast (Queue voll) ist definiert, nicht undefiniert Lasttest mit parallelen Chat-Anfragen, Antwortzeit gemessen und dokumentiert Queue-Länge unter Last beobachtet und gegen Zielwert geprüft Überlast-Szenario simuliert, definiertes Verhalten bestätigt
44 GOV-06 Prompt-Injection-Schutz 🛡️ Datenschutz & Governance Backend Mittel 3 4 Backlog Fertig Strukturierte Prompt-Vorlagen, Schema-Validierung, Muster-Erkennung Härtung gegen Prompt-Injection aus Dokument-/Mailinhalten – strikte Trennung zwischen Systemanweisung und Nutzerinhalt im Prompt-Aufbau, Validierung von Extraktionsergebnissen gegen ein erwartetes Schema, Erkennung auffälliger Instruktions-Muster im Dokumentinhalt vor der Verarbeitung. ENG-01 EXT-01 QA-05 Dokumentinhalt wird im Prompt strukturell von der Systemanweisung getrennt (z. B. über klar markierte Abschnitte oder strukturierte Eingabe), nicht als freier Text vermischt Extraktionsergebnisse werden gegen ein erwartetes Schema/Format validiert, bevor sie weiterverarbeitet werden Kein KI-Ergebnis löst allein eine automatische Freigabe-, Lösch- oder Statusänderungs-Aktion aus – jede sicherheitsrelevante Aktion bleibt an eine menschliche Bestätigung gekoppelt (Docspell-Prinzip, hier als Sicherheitsgrenze verankert) Test mit Dokument, das eine eingebettete Anweisung enthält ("ignoriere vorherige Anweisung...") – Verarbeitung folgt der eigentlichen Aufgabe, nicht der eingebetteten Anweisung Test: Extraktionsergebnis außerhalb des erwarteten Schemas wird abgelehnt/markiert, nicht stillschweigend übernommen Test bestätigt, dass keine sicherheitsrelevante Aktion ohne menschliche Bestätigung ausgelöst wurde
45 QA-09 Barrierefreiheits-Audit ✅ Prüfungen & Qualitätssicherung QA Mittel 3 8 Backlog Prüfwerkzeuge, Bildschirmleser Unabhängige Prüfung aller AI-Oberflächen (Extraktions-Korrektur-Oberfläche, Zusammenfassungs-Oberfläche, Semantische-Such-/Chat-Oberfläche) gegen WCAG 2.1 AA mit Werkzeugen und manuellem Durchlauf, gegen die von Core SHL-01 geerbten Basis-Komponenten sowie modulspezifische Ergänzungen. EXT-04 SUM-03 SEM-06 QA-06 Keine kritischen Verstöße offen Manueller Bildschirmleser-Durchlauf dokumentiert Restbefunde sind mit Frist eingeplant Automatisierte Prüfung über alle Hauptseiten Vollständiger Ablauf ohne Maus durchgeführt Auditbericht abgelegt
46 GOV-07 Unabhängige Tenant-Validierung bei KI-Objekttyp-Registrierung durch DMS/Mail 🛡️ Datenschutz & Governance Backend Mittel 2 10 Backlog Fertig Service-Credentials (Core API-02), Tenant-Registry-Abgleich (Core TEN-01), Go GOV-01 nimmt Registrierungen KI-fähiger Objekttypen und Felder von DMS und Mail entgegen. Analog zu Archive `RET-12` und Workflow `ENG-06` muss jede Registrierung den mitgelieferten Tenant-Kontext unabhängig gegen die Core-Registry (TEN-01) validieren, statt der Angabe des registrierenden Moduls zu vertrauen – sonst könnte eine Kompromittierung/Fehlkonfiguration in DMS/Mail dazu führen, dass KI-Funktionen (Klassifizierung, Extraktion, semantische Suche) auf falsch zugeordnete Tenant-Daten angewendet werden. GOV-01 Jede Objekttyp-/Feld-Registrierung aus DMS/Mail wird gegen die Core-Registry auf Tenant-Gültigkeit geprüft, bevor sie übernommen wird Eine Registrierung mit einem nicht existierenden oder falschem Tenant-Kontext wird abgelehnt und protokolliert Bestehende, korrekte Registrierungsabläufe aus GOV-01 funktionieren unverändert Test: Registrierung mit gültigem, existierendem Tenant-Kontext wird übernommen Test: Registrierung mit manipuliertem/fremdem Tenant-Kontext wird abgelehnt Regressionstest: normaler DMS-/Mail-Registrierungsablauf bleibt funktionsfähig
47 ENG-07 Ressourcenlimits für die Inferenz-Warteschlange 🧠 KI-Engine & Modell-Anbindung Backend Mittel 2 10 Backlog Fertig Postgres-Jobqueue, Worker-Goroutinen, Ressourcenlimits (Zeit/Eingabegröße/Kontextlänge) ENG-05 stellt eine asynchrone Warteschlange für Inferenz-Aufrufe bereit, damit lange KI-Anfragen keine Anfrage-Bearbeitung blockieren, ohne Obergrenzen pro Einzelanfrage festzulegen. Eine sehr lange Eingabe (z. B. ein extrem langes Dokument bei Zusammenfassung/Embedding) oder eine bewusst konstruierte Anfrage kann einen Inferenz-Worker unverhältnismäßig lange blockieren und damit andere Mandanten in der gemeinsamen Warteschlange verzögern. Harte Obergrenzen je Anfrage definieren (max. Eingabegröße/Kontextlänge, max. Verarbeitungszeit) – bei Überschreitung wird die Anfrage kontrolliert abgelehnt statt den Worker zu blockieren. ENG-05 Jede Inferenz-Anfrage hat konfigurierbare Obergrenzen für Eingabegröße/Kontextlänge und maximale Verarbeitungszeit Eine Überschreitung führt zur kontrollierten Ablehnung der Anfrage mit klarer Fehlermeldung, nicht zur Blockade des Workers Andere, gleichzeitig laufende Inferenz-Anfragen (auch anderer Mandanten) bleiben von einer überschreitenden Anfrage unbeeinflusst Test mit einer Eingabe, die absichtlich die Kontextlängen-/Größenobergrenze überschreitet: Anfrage wird kontrolliert abgelehnt Lasttest: eine überschreitende Anfrage blockiert nicht die Verarbeitung paralleler, regulärer Anfragen Regressionstest: normale, innerhalb der Grenzen liegende Anfragen funktionieren unverändert
48 ENG-08 AI-App: gebündelter Diensteinstiegspunkt (cmd/ai-app) 🧠 KI-Engine & Modell-Anbindung Backend Mittel 2 9 Fertig net/http.ServeMux, pgxpool, Umgebungsvariablen fuer DSN/Listen-Adresse Buendelt alle bestehenden AI-API-Pakete (summaryapi, semanticsearchapi, extractapi, residencyapi, routingsuggestapi) inkl. Inferenz-Queue-Worker und Quota-Enforcement zu einem einzigen startbaren Dienst cmd/ai-app, analog connect/cmd/connect-app. ENG-05 GOV-03 GOV-04 WFS-02 cmd/ai-app startet einen einzigen HTTP-Dienst, der alle bestehenden AI-API-Pakete unter ihren jeweiligen Routen bereitstellt Inferenz-Queue-Worker und Quota-Enforcement sind beim Start korrekt verdrahtet (nicht nur die HTTP-Handler ohne funktionierenden Hintergrundprozess) DSN und Listen-Adresse ausschliesslich ueber Umgebungsvariablen, keine Zugangsdaten im Code Fehlende Pflicht-Umgebungsvariable fuehrt zu klarer Fehlermeldung beim Start, nicht zu einem stillen Absturz Dienst startet real auf Host 204 und beantwortet mindestens einen Endpunkt je eingebundenem API-Paket Realer Start auf Host 204 mit Wegwerf-DB, mindestens ein Aufruf je eingebundenem API-Paket erfolgreich Ein echter Inferenz-Auftrag durchlaeuft die Warteschlange real bis zum Abschluss Fehlende Pflicht-Umgebungsvariable: Dienst beendet sich mit klarer Fehlermeldung, kein Port offen Bestehende Modul-Testsuite bleibt unveraendert gruen
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
212
213
214
215
216
217
218
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
+74 -38
View File
@@ -1,4 +1,4 @@
{
{
"erzeugtAm": "2026-08-26",
"totalDays": 126,
"epics": [
@@ -304,7 +304,7 @@
"Timeout- und Fehlerfall am Interface geprüft",
"Vertrag per Contract-Test abgesichert"
],
"status": "Backlog",
"status": "Fertig",
"epicName": "KI-Engine & Modell-Anbindung",
"epicEmoji": "🧠",
"wave": 1,
@@ -343,7 +343,7 @@
"Modellwechsel ohne Dienst-Neustart geprüft",
"Dokumentierte Modellgrößen-Empfehlung mit tatsächlichem Ressourcenverbrauch abgeglichen"
],
"status": "Backlog",
"status": "Fertig",
"epicName": "KI-Engine & Modell-Anbindung",
"epicEmoji": "🧠",
"wave": 2,
@@ -376,7 +376,7 @@
"Deaktivierter externer Adapter wird nie automatisch verwendet",
"Kein Dokumentinhalt verlässt das System ohne explizite Freigabe"
],
"status": "Backlog",
"status": "Fertig",
"epicName": "KI-Engine & Modell-Anbindung",
"epicEmoji": "🧠",
"wave": 2,
@@ -409,7 +409,7 @@
"Fehlkonfiguration wird beim Speichern verhindert",
"Mandantentrennung der Modellauswahl geprüft"
],
"status": "Backlog",
"status": "Fertig",
"epicName": "KI-Engine & Modell-Anbindung",
"epicEmoji": "🧠",
"wave": 2,
@@ -441,7 +441,7 @@
"Wiederholung nach Fehlschlag im Test nachvollzogen",
"Warteschlangenstand im Monitoring sichtbar"
],
"status": "Backlog",
"status": "Fertig",
"epicName": "KI-Engine & Modell-Anbindung",
"epicEmoji": "🧠",
"wave": 2,
@@ -482,7 +482,7 @@
"Änderung einer Vorlage ohne Versionsverlust geprüft",
"Aktive Version für jede Funktion eindeutig ermittelt"
],
"status": "Backlog",
"status": "Fertig",
"epicName": "KI-Engine & Modell-Anbindung",
"epicEmoji": "🧠",
"wave": 2,
@@ -514,7 +514,7 @@
"Verhalten bei unbekannter Dokumentart geprüft",
"Ausgabeschema in allen Testfällen eingehalten"
],
"status": "Backlog",
"status": "Fertig",
"epicName": "Klassifizierung & Verschlagwortung",
"epicEmoji": "🏷️",
"wave": 3,
@@ -550,7 +550,7 @@
"Erweiterung der Taxonomie ohne Codeänderung geprüft",
"Mehrdeutiger Testfall korrekt markiert"
],
"status": "Backlog",
"status": "Fertig",
"epicName": "Klassifizierung & Verschlagwortung",
"epicEmoji": "🏷️",
"wave": 4,
@@ -582,7 +582,7 @@
"Trefferquote an Testset gemessen und dokumentiert",
"Keine automatische Übernahme ohne Bestätigung geprüft"
],
"status": "Backlog",
"status": "Fertig",
"epicName": "Klassifizierung & Verschlagwortung",
"epicEmoji": "🏷️",
"wave": 4,
@@ -614,7 +614,7 @@
"Stabilität bei sehr langen Dokumenten geprüft",
"Nachvollziehbarkeit der Markierung im Test bestätigt"
],
"status": "Backlog",
"status": "Fertig",
"epicName": "Klassifizierung & Verschlagwortung",
"epicEmoji": "🏷️",
"wave": 4,
@@ -646,7 +646,7 @@
"Korrektur-Feedback im Test vollständig erfasst",
"Auswertung liefert nachvollziehbare Kennzahlen"
],
"status": "Backlog",
"status": "Fertig",
"epicName": "Klassifizierung & Verschlagwortung",
"epicEmoji": "🏷️",
"wave": 4,
@@ -678,7 +678,7 @@
"Schemaverletzung im Test zuverlässig abgewiesen",
"Verhalten bei fehlendem Wert geprüft"
],
"status": "Backlog",
"status": "Fertig",
"epicName": "Extraktion",
"epicEmoji": "📑",
"wave": 3,
@@ -712,7 +712,7 @@
"Mehrfachsteuersatz-Fall im Test korrekt ausgewertet",
"Fehlerhafte Testrechnung korrekt zurückgewiesen"
],
"status": "Backlog",
"status": "Fertig",
"epicName": "Extraktion",
"epicEmoji": "📑",
"wave": 4,
@@ -744,7 +744,7 @@
"Score-Herleitung im Test nachvollzogen",
"Regeländerung ohne Codeänderung wirksam"
],
"status": "Backlog",
"status": "Fertig",
"epicName": "Extraktion",
"epicEmoji": "📑",
"wave": 4,
@@ -779,7 +779,7 @@
"Korrektur eines einzelnen Felds ohne Seiteneffekt geprüft",
"Abbruch ohne Übernahme im Test bestätigt"
],
"status": "Backlog",
"status": "Fertig",
"epicName": "Extraktion",
"epicEmoji": "📑",
"wave": 5,
@@ -809,7 +809,7 @@
"Fehlkonfiguriertes Mapping im Test erkannt",
"Nicht zuordenbarer Wert im Test korrekt gemeldet"
],
"status": "Backlog",
"status": "Fertig",
"epicName": "Extraktion",
"epicEmoji": "📑",
"wave": 5,
@@ -841,7 +841,7 @@
"Verhalten bei sehr langem Dokument getestet",
"Konfigurierbare Länge im Test eingehalten"
],
"status": "Backlog",
"status": "Fertig",
"epicName": "Zusammenfassungen",
"epicEmoji": "📝",
"wave": 3,
@@ -874,7 +874,7 @@
"Duplizierung von Zitaten im Test ausgeschlossen",
"Aktualisierung nach neuer Nachricht geprüft"
],
"status": "Backlog",
"status": "Fertig",
"epicName": "Zusammenfassungen",
"epicEmoji": "📝",
"wave": 3,
@@ -908,7 +908,7 @@
"Verweis auf Original im Test funktionsfähig",
"Ladezustand im Test sichtbar"
],
"status": "Backlog",
"status": "Fertig",
"epicName": "Zusammenfassungen",
"epicEmoji": "📝",
"wave": 4,
@@ -938,7 +938,7 @@
"Auffälliger Testfall im Test markiert",
"Nachvollziehbarkeit der Bewertung bestätigt"
],
"status": "Backlog",
"status": "Fertig",
"epicName": "Zusammenfassungen",
"epicEmoji": "📝",
"wave": 4,
@@ -970,7 +970,7 @@
"Fehlerfall im Test erkannt und wiederholt",
"Durchsatz an Testmenge dokumentiert"
],
"status": "Backlog",
"status": "Fertig",
"epicName": "Semantische Suche & Chat",
"epicEmoji": "🔎",
"wave": 3,
@@ -1002,7 +1002,7 @@
"Löschung im Test vollständig nachvollzogen",
"Abfragezeit an Testmenge dokumentiert"
],
"status": "Backlog",
"status": "Fertig",
"epicName": "Semantische Suche & Chat",
"epicEmoji": "🔎",
"wave": 4,
@@ -1034,7 +1034,7 @@
"Rechteprüfung im Test bestätigt",
"Leerfall im Test korrekt behandelt"
],
"status": "Backlog",
"status": "Fertig",
"epicName": "Semantische Suche & Chat",
"epicEmoji": "🔎",
"wave": 5,
@@ -1067,7 +1067,7 @@
"Fall ohne Treffer im Test korrekt behandelt",
"Antwortzeit an Testkorpus gemessen"
],
"status": "Backlog",
"status": "Fertig",
"epicName": "Semantische Suche & Chat",
"epicEmoji": "🔎",
"wave": 6,
@@ -1101,7 +1101,7 @@
"Sprung zum Originalabschnitt im Test funktionsfähig",
"Unbelegte Antwort im Test korrekt gekennzeichnet"
],
"status": "Backlog",
"status": "Fertig",
"epicName": "Semantische Suche & Chat",
"epicEmoji": "🔎",
"wave": 7,
@@ -1135,7 +1135,7 @@
"Quellenanzeige im Test sichtbar bestätigt",
"Verlauf nach Navigation im Test erhalten"
],
"status": "Backlog",
"status": "Fertig",
"epicName": "Semantische Suche & Chat",
"epicEmoji": "🔎",
"wave": 7,
@@ -1167,7 +1167,7 @@
"Fall geringer Datenlage im Test korrekt behandelt",
"Konfidenzwert im Test nachvollzogen"
],
"status": "Backlog",
"status": "Fertig",
"epicName": "Workflow-Vorschläge",
"epicEmoji": "💡",
"wave": 4,
@@ -1200,7 +1200,7 @@
"Ausfallverhalten im Test bestätigt",
"Antwortformat gegen Vertrag geprüft"
],
"status": "Backlog",
"status": "Fertig",
"epicName": "Workflow-Vorschläge",
"epicEmoji": "💡",
"wave": 5,
@@ -1233,7 +1233,7 @@
"Trefferquoten-Auswertung im Test nachvollzogen",
"Wirkung des Feedbacks auf Folgevorschlag geprüft"
],
"status": "Backlog",
"status": "Fertig",
"epicName": "Workflow-Vorschläge",
"epicEmoji": "💡",
"wave": 6,
@@ -1265,7 +1265,7 @@
"Fehlregistrierung im Test korrekt abgewiesen",
"Zwei Module parallel registriert und geprüft"
],
"status": "Backlog",
"status": "Fertig",
"epicName": "Datenschutz & Governance",
"epicEmoji": "🛡️",
"wave": 3,
@@ -1301,7 +1301,7 @@
"Globaler Schalter (Core LIC-02) im Test respektiert",
"Änderung ohne Neustart im Test nachvollzogen"
],
"status": "Backlog",
"status": "Fertig",
"epicName": "Datenschutz & Governance",
"epicEmoji": "🛡️",
"wave": 4,
@@ -1334,7 +1334,7 @@
"Fehlende Freigabe verhindert externe Verarbeitung im Test",
"Trainingsausschluss vertraglich und technisch geprüft"
],
"status": "Backlog",
"status": "Fertig",
"epicName": "Datenschutz & Governance",
"epicEmoji": "🛡️",
"wave": 3,
@@ -1367,7 +1367,7 @@
"Vorabwarnung im Test ausgelöst",
"Verbrauchszählung gegen tatsächliche Aufrufe abgeglichen"
],
"status": "Backlog",
"status": "Fertig",
"epicName": "Datenschutz & Governance",
"epicEmoji": "🛡️",
"wave": 3,
@@ -1399,7 +1399,7 @@
"Verweis auf Modell-/Promptversion im Test bestätigt",
"Unveränderlichkeit des Eintrags im Test geprüft"
],
"status": "Backlog",
"status": "Fertig",
"epicName": "Datenschutz & Governance",
"epicEmoji": "🛡️",
"wave": 4,
@@ -1707,7 +1707,7 @@
"Test: Extraktionsergebnis außerhalb des erwarteten Schemas wird abgelehnt/markiert, nicht stillschweigend übernommen",
"Test bestätigt, dass keine sicherheitsrelevante Aktion ohne menschliche Bestätigung ausgelöst wurde"
],
"status": "Backlog",
"status": "Fertig",
"epicName": "Datenschutz & Governance",
"epicEmoji": "🛡️",
"wave": 4,
@@ -1773,7 +1773,7 @@
"Test: Registrierung mit manipuliertem/fremdem Tenant-Kontext wird abgelehnt",
"Regressionstest: normaler DMS-/Mail-Registrierungsablauf bleibt funktionsfähig"
],
"status": "Backlog",
"status": "Fertig",
"epicName": "Datenschutz & Governance",
"epicEmoji": "🛡️",
"wave": 10,
@@ -1803,12 +1803,48 @@
"Lasttest: eine überschreitende Anfrage blockiert nicht die Verarbeitung paralleler, regulärer Anfragen",
"Regressionstest: normale, innerhalb der Grenzen liegende Anfragen funktionieren unverändert"
],
"status": "Backlog",
"status": "Fertig",
"epicName": "KI-Engine & Modell-Anbindung",
"epicEmoji": "🧠",
"wave": 10,
"unlocks": [],
"prompt": "# ENG-07 – Ressourcenlimits für die Inferenz-Warteschlange\n\n**Epic:** 🧠 KI-Engine & Modell-Anbindung | **Rolle:** Backend | **Komplexität:** Mittel | **Aufwand:** 2 Personentage | **Welle:** 10\n\n---\n\n## Rolle\nDu bist erfahrene Entwicklerin im Bereich Backend und baust NEXARCH AI (KI-Engine & Modell-Anbindung, Klassifizierung, Extraktion, Zusammenfassung, semantische Suche & Chat, Workflow-Vorschläge, Datenschutz & Governance), lokal/On-Premise-first via Ollama, optionaler externer Adapter, kein Training auf Kundendaten.\nServerseitige Logik, Datenzugriff und Schnittstelle. Keine Geschäftslogik in der Oberfläche.\n\n## Auftrag\nENG-05 stellt eine asynchrone Warteschlange für Inferenz-Aufrufe bereit, damit lange KI-Anfragen keine Anfrage-Bearbeitung blockieren, ohne Obergrenzen pro Einzelanfrage festzulegen. Eine sehr lange Eingabe (z. B. ein extrem langes Dokument bei Zusammenfassung/Embedding) oder eine bewusst konstruierte Anfrage kann einen Inferenz-Worker unverhältnismäßig lange blockieren und damit andere Mandanten in der gemeinsamen Warteschlange verzögern. Harte Obergrenzen je Anfrage definieren (max. Eingabegröße/Kontextlänge, max. Verarbeitungszeit) – bei Überschreitung wird die Anfrage kontrolliert abgelehnt statt den Worker zu blockieren.\n\n**Technische Grundlage:** Postgres-Jobqueue, Worker-Goroutinen, Ressourcenlimits (Zeit/Eingabegröße/Kontextlänge)\n\n## Produkt-DNA für diesen Bereich\n**Übernehmen:**\n- Unleash: konfigurierbare Grenzen (Quotas) statt unbegrenzter Ressourcennutzung, hier auf Inferenz-Anfragen übertragen.\n\n**Bewusst vermeiden:**\n- LangChain/LlamaIndex (verbreitetes Anti-Muster in einfachen Integrationen) – unbegrenzte Kontextlängen führen zu unvorhersehbaren Latenzen/Kosten.: harte, konfigurierbare Obergrenzen je Anfrage von Anfang an.\n\n## Ausgangslage\nSetzt auf folgenden bereits fertigen Kacheln auf: ENG-05.\n\n## Akzeptanzkriterien\nDie Kachel gilt erst als umgesetzt, wenn alle Punkte erfüllt sind:\n1. Jede Inferenz-Anfrage hat konfigurierbare Obergrenzen für Eingabegröße/Kontextlänge und maximale Verarbeitungszeit\n2. Eine Überschreitung führt zur kontrollierten Ablehnung der Anfrage mit klarer Fehlermeldung, nicht zur Blockade des Workers\n3. Andere, gleichzeitig laufende Inferenz-Anfragen (auch anderer Mandanten) bleiben von einer überschreitenden Anfrage unbeeinflusst\n\n## Prüfungen vor der Abnahme\nFühre jede Prüfung tatsächlich durch und halte das Ergebnis schriftlich fest. Nicht durchgeführte Prüfungen zählen als offen:\n1. Test mit einer Eingabe, die absichtlich die Kontextlängen-/Größenobergrenze überschreitet: Anfrage wird kontrolliert abgelehnt\n2. Lasttest: eine überschreitende Anfrage blockiert nicht die Verarbeitung paralleler, regulärer Anfragen\n3. Regressionstest: normale, innerhalb der Grenzen liegende Anfragen funktionieren unverändert\n\n## Bekannte Fehler vermeiden\n\nThreat-Model-Finding (AI-Board, 2026-09-12), analog zu DMS-Finding `FDN-11` und Mail-Finding `SRC-12`: unbegrenzte Einzelanfrage-Verarbeitung ist ein Denial-of-Service-Vektor gegen den gemeinsamen Inferenz-Worker-Pool, auch ohne böswillige Absicht.\n\n## Nicht Bestandteil dieser Kachel\nDiese Punkte gehören ausdrücklich in andere Kacheln. Bereite höchstens die Schnittstelle dafür vor:\n- `ENG-05` Inferenz-Queue\n\n## Arbeitsweise\n1. Lies zuerst den bestehenden Code der Vorbedingungen und halte dich an die dort etablierten Muster.\n2. Setze die kleinste Lösung um, die alle Akzeptanzkriterien erfüllt. Kein Umbau angrenzender Bereiche.\n3. Schreibe zu jedem Akzeptanzkriterium mindestens einen automatisierten Test.\n4. Führe alle Prüfungen aus und dokumentiere Zielwert und Ergebnis.\n5. Deutschsprachige Oberflächentexte, englischsprachige Bezeichner im Code.\n6. Keine Zugangsdaten, Schlüssel oder Verbindungszeichenfolgen im Code – ausschließlich über Umgebungsvariablen.\n\n## Abschluss\n- Commit-Nachricht: `ENG-07: ressourcenlimits-f-r-die-inferenz-warteschlange`\n- Branch: `feature/eng-07-ressourcenlimits-f-r-die-inferenz-warteschlange`\n- Schrittweise committen, Branch pushen, dann anhalten. Kein Merge, kein Deploy.\n- In der Beschreibung des Pull Request die durchgeführten Prüfungen mit Ergebnis auflisten.\n"
},
{
"code": "ENG-08",
"title": "AI-App: gebündelter Diensteinstiegspunkt (cmd/ai-app)",
"epic": "ENG",
"featureIds": [],
"role": "Backend",
"complexity": "Mittel",
"estimateDays": 2,
"tech": "net/http.ServeMux, pgxpool, Umgebungsvariablen fuer DSN/Listen-Adresse",
"description": "Buendelt alle bestehenden AI-API-Pakete (summaryapi, semanticsearchapi, extractapi, residencyapi, routingsuggestapi) inkl. Inferenz-Queue-Worker und Quota-Enforcement zu einem einzigen startbaren Dienst cmd/ai-app, analog connect/cmd/connect-app.",
"dependsOn": [
"ENG-05",
"GOV-03",
"GOV-04",
"WFS-02"
],
"akzeptanz": [
"cmd/ai-app startet einen einzigen HTTP-Dienst, der alle bestehenden AI-API-Pakete unter ihren jeweiligen Routen bereitstellt",
"Inferenz-Queue-Worker und Quota-Enforcement sind beim Start korrekt verdrahtet (nicht nur die HTTP-Handler ohne funktionierenden Hintergrundprozess)",
"DSN und Listen-Adresse ausschliesslich ueber Umgebungsvariablen, keine Zugangsdaten im Code",
"Fehlende Pflicht-Umgebungsvariable fuehrt zu klarer Fehlermeldung beim Start, nicht zu einem stillen Absturz",
"Dienst startet real auf Host 204 und beantwortet mindestens einen Endpunkt je eingebundenem API-Paket"
],
"pruefungen": [
"Realer Start auf Host 204 mit Wegwerf-DB, mindestens ein Aufruf je eingebundenem API-Paket erfolgreich",
"Ein echter Inferenz-Auftrag durchlaeuft die Warteschlange real bis zum Abschluss",
"Fehlende Pflicht-Umgebungsvariable: Dienst beendet sich mit klarer Fehlermeldung, kein Port offen",
"Bestehende Modul-Testsuite bleibt unveraendert gruen"
],
"status": "Fertig",
"epicName": "KI-Engine & Modell-Anbindung",
"epicEmoji": "🧠",
"wave": 9,
"unlocks": [],
"prompt": "# ENG-08 – AI-App: gebündelter Diensteinstiegspunkt (cmd/ai-app)\n\n**Epic:** 🧠 KI-Engine & Modell-Anbindung | **Rolle:** Backend | **Komplexität:** Mittel | **Aufwand:** 2 Personentage | **Welle:** 9\n\n---\n\n## Rolle\nDu bist erfahrene Entwicklerin im Bereich Backend und baust NEXARCH AI (zentrales, modulübergreifendes Modul für KI-Funktionen).\n\n## Auftrag\nBei der Vorbereitung des 131-Rollouts wurde real festgestellt: AI hat keinen `cmd/`-Diensteinstiegspunkt, der einen Port öffnet — nur Test-Fixtures und CI-Gate-CLIs (`extractapi-a11y-fixture`, `summaryapi-a11y-fixture`, `pflichttestgate`). Die API-Handler-Pakete (`summaryapi`, `semanticsearchapi`, `extractapi`, `residencyapi`, `routingsuggestapi`) sind reine Bibliotheken ohne bündelnden Dienst. Verbinde sie zu einem einzigen startbaren `cmd/ai-app`, analog zu `connect/cmd/connect-app`.\n\n**Technische Grundlage:** `net/http.ServeMux`, `pgxpool`, Umgebungsvariablen für DSN/Listen-Adresse (analog `connect-app`).\n\n## Produkt-DNA für diesen Bereich\n> Ein Dienst pro Modul, alle HTTP-Handler-Pakete darin registriert — kein Diensteinstiegspunkt pro Feature.\n\n## Ausgangslage\nReferenzmuster: `connect/cmd/connect-app/main.go`. Alle bereits fertigen AI-API-Pakete: `summaryapi`, `semanticsearchapi`, `extractapi`, `residencyapi` (GOV-03), `routingsuggestapi` (WFS-02). Inferenz-Queue (ENG-05) und Quota-Enforcement (GOV-04) müssen beim Start korrekt verdrahtet werden (Queue-Worker + Quota-Store an den `Queue`/`Worker` gehängt, nicht nur die reinen HTTP-Handler).\n\n## Akzeptanzkriterien\n1. `cmd/ai-app` startet einen einzigen HTTP-Dienst, der alle bestehenden AI-API-Pakete unter ihren jeweiligen Routen bereitstellt\n2. Inferenz-Queue-Worker und Quota-Enforcement sind beim Start korrekt verdrahtet (nicht nur die HTTP-Handler ohne funktionierenden Hintergrundprozess)\n3. DSN und Listen-Adresse ausschließlich über Umgebungsvariablen, keine Zugangsdaten im Code\n4. Fehlende Pflicht-Umgebungsvariable führt zu klarer Fehlermeldung beim Start, nicht zu einem stillen Absturz\n5. Dienst startet real auf Host 204 und beantwortet mindestens einen Endpunkt je eingebundenem API-Paket\n\n## Prüfungen vor der Abnahme\n1. Realer Start auf Host 204 mit Wegwerf-DB, mindestens ein Aufruf je eingebundenem API-Paket erfolgreich\n2. Ein echter Inferenz-Auftrag durchläuft die Warteschlange real bis zum Abschluss (Nachweis, dass der Worker läuft, nicht nur der HTTP-Teil)\n3. Fehlende Pflicht-Umgebungsvariable: Dienst beendet sich mit klarer Fehlermeldung, kein Port offen\n4. Bestehende Modul-Testsuite bleibt unverändert grün (keine Regression durch das neue `cmd/`-Paket)\n\n## Nicht Bestandteil dieser Kachel\n- Neue Fachlogik/Endpunkte (nur Zusammenführung bestehender Pakete)\n- Rollout/Deploy auf Host 131 (separater, späterer Schritt nach Freigabe)\n- Kill-Switch (falls für AI gewünscht: eigenes Folgeticket analog ENG-10, AI ist ohnehin schon optional über Core LIC-02 aktivierbar)\n\n## Arbeitsweise\n1. Lies zuerst `connect/cmd/connect-app/main.go` als Referenzmuster.\n2. Setze die kleinste Lösung um, die alle Akzeptanzkriterien erfüllt. Kein Umbau angrenzender Bereiche.\n3. Schreibe zu jedem Akzeptanzkriterium mindestens einen automatisierten Test.\n4. Führe alle Prüfungen aus und dokumentiere Zielwert und Ergebnis.\n5. Deutschsprachige Oberflächentexte, englischsprachige Bezeichner im Code.\n6. Keine Zugangsdaten, Schlüssel oder Verbindungszeichenfolgen im Code – ausschließlich über Umgebungsvariablen.\n\n## Abschluss\n- Commit-Nachricht: `ENG-08: ai-app gebuendelter diensteinstiegspunkt`\n- Branch: `feature/eng-08-ai-app-diensteinstiegspunkt`\n- Schrittweise committen, Branch pushen, dann anhalten. Kein Merge, kein Deploy.\n- In der Beschreibung des Pull Request die durchgeführten Prüfungen mit Ergebnis auflisten.\n"
}
]
}