Arbeitspakete für M3 überarbeitet
This commit is contained in:
@@ -8,13 +8,20 @@ Die Arbeitspakete sind so geschnitten, dass jedes Paket in **einem Durchgang** v
|
|||||||
|
|
||||||
Die Meilensteine **M1** und **M2** werden als vollständig umgesetzt vorausgesetzt.
|
Die Meilensteine **M1** und **M2** werden als vollständig umgesetzt vorausgesetzt.
|
||||||
|
|
||||||
## Konsistenz- und Schnittregeln
|
## Zusätzliche Schnittregeln für die KI-Bearbeitung
|
||||||
|
|
||||||
- Jedes Arbeitspaket liefert einen in sich geschlossenen, fehlerfreien Zwischenstand.
|
- Jedes Arbeitspaket muss so eindeutig sein, dass daraus ein **einzelner Prompt** für eine umsetzende KI abgeleitet werden kann.
|
||||||
|
- Jedes Arbeitspaket beschreibt deshalb:
|
||||||
|
- den **konkreten Implementierungsumfang**,
|
||||||
|
- die **klaren Nicht-Ziele**,
|
||||||
|
- sowie **prüfbare Fertig-Kriterien**.
|
||||||
|
- Es dürfen innerhalb eines Arbeitspakets nur die **minimal notwendigen Querschnitte** durch Domain, Application, Adapter und Bootstrap geändert werden.
|
||||||
- Die Reihenfolge ist verbindlich, weil jedes Paket auf dem vorherigen Stand aufbaut.
|
- Die Reihenfolge ist verbindlich, weil jedes Paket auf dem vorherigen Stand aufbaut.
|
||||||
- Der Fokus bleibt strikt auf **M3**.
|
- Der Fokus bleibt strikt auf **M3**.
|
||||||
- Es erfolgt **kein Vorgriff auf spätere Meilensteine**.
|
- Es erfolgt **kein Vorgriff auf spätere Meilensteine**.
|
||||||
- Insbesondere sind in M3 noch **nicht** enthalten:
|
|
||||||
|
## Explizit nicht Bestandteil von M3
|
||||||
|
|
||||||
- Fingerprint-Berechnung
|
- Fingerprint-Berechnung
|
||||||
- SQLite-Persistenz
|
- SQLite-Persistenz
|
||||||
- Idempotenzlogik über frühere Läufe
|
- Idempotenzlogik über frühere Läufe
|
||||||
@@ -24,180 +31,288 @@ Die Meilensteine **M1** und **M2** werden als vollständig umgesetzt vorausgeset
|
|||||||
- Dateinamensbildung
|
- Dateinamensbildung
|
||||||
- Zielkopie in den Zielordner
|
- Zielkopie in den Zielordner
|
||||||
- laufübergreifende Retry-Logik
|
- laufübergreifende Retry-Logik
|
||||||
|
- manuelle Nachbearbeitung
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## AP-001 Dateikandidat-Modell und Ports für Quellzugriff und PDF-Auslese
|
## AP-001 M3-Kernobjekte und Outbound-Port-Verträge für Quellkandidaten und PDF-Auslese
|
||||||
|
|
||||||
### Ziel
|
### Ziel
|
||||||
Die für M3 nötigen fachnahen Kernobjekte sowie die neuen Outbound-Ports werden architekturtreu eingeführt.
|
Die für M3 benötigten fachnahen Kernobjekte und Application-Verträge werden präzise eingeführt, ohne Infrastruktur in Domain oder Application hineinzuziehen.
|
||||||
|
|
||||||
### Inhalt
|
### Inhalt
|
||||||
- minimale Domain- bzw. Application-Typen für den M3-Kontext anlegen, insbesondere für:
|
- neue M3-relevante Kernobjekte bzw. Application-nahe Typen anlegen, insbesondere für:
|
||||||
- Quelldokument bzw. Verarbeitungskandidat
|
- Verarbeitungskandidat aus dem Quellordner,
|
||||||
- extrahierten Dokumenttext
|
- Extraktionsergebnis eines einzelnen PDF-Dokuments,
|
||||||
- Seitenzahl
|
- Seitenzahl,
|
||||||
- fachlich-technische Bewertung des Extraktionsergebnisses
|
- dokumentbezogenes M3-Verarbeitungsergebnis bzw. M3-Entscheidung.
|
||||||
- Outbound-Ports für M3 definieren, insbesondere für:
|
- Outbound-Ports definieren für:
|
||||||
- Quellordnerzugriff
|
- Lesen der Verarbeitungskandidaten aus dem Quellordner,
|
||||||
- PDF-Text- und Seitenzahlextraktion
|
- Extraktion von Text und Seitenzahl aus genau einem PDF-Kandidaten.
|
||||||
- Port-Signaturen so schneiden, dass Dateisystem und PDFBox weiterhin ausschließlich in Adapter-Out verbleiben
|
- Port-Verträge so schneiden, dass **weder `Path`/`File` noch PDFBox-Typen** in Domain oder Application durchsickern.
|
||||||
- klare Abgrenzung sicherstellen: keine Persistenz, keine KI, keine Zielkopie und keine Dateinamensbildung in Domain oder Application
|
- Rückgabemodelle so anlegen, dass spätere APs daraus sauber zwischen
|
||||||
- JavaDoc und `package-info` für neue Verantwortlichkeiten und Architekturgrenzen ergänzen
|
- technisch erfolgreich extrahiert,
|
||||||
|
- fachlich nicht verarbeitbar,
|
||||||
|
- und technisch fehlgeschlagen
|
||||||
|
unterscheiden können.
|
||||||
|
- JavaDoc und `package-info` für Verantwortlichkeiten und Architekturgrenzen ergänzen.
|
||||||
|
|
||||||
|
### Explizit nicht Teil
|
||||||
|
- Dateisystem-Implementierung
|
||||||
|
- PDFBox-Implementierung
|
||||||
|
- fachliche Bewertung „brauchbarer Text"
|
||||||
|
- Seitenlimit-Prüfung
|
||||||
|
- Logging, Bootstrap oder CLI-Anpassungen
|
||||||
|
|
||||||
### Fertig wenn
|
### Fertig wenn
|
||||||
- die M3-relevanten Kernobjekte und Ports vorhanden sind
|
- die M3-relevanten Typen und Port-Verträge vorhanden sind,
|
||||||
- die neuen Typen frei von Infrastrukturabhängigkeiten sind
|
- die neuen Typen frei von Infrastrukturabhängigkeiten sind,
|
||||||
- der Build weiterhin fehlerfrei ist
|
- der Build weiterhin fehlerfrei ist.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## AP-002 Dateisystem-Adapter für Quellordnerzugriff und Kandidatenermittlung
|
## AP-002 Dateisystem-Adapter für Quellordnerzugriff und deterministische PDF-Kandidatenermittlung
|
||||||
|
|
||||||
### Ziel
|
### Ziel
|
||||||
Der Batch-Lauf kann den konfigurierten Quellordner technisch lesen und daraus PDF-Verarbeitungskandidaten bestimmen.
|
Der Batch-Lauf kann den konfigurierten Quellordner lesen und daraus genau die PDFs als Verarbeitungskandidaten bereitstellen, die in M3 berücksichtigt werden dürfen.
|
||||||
|
|
||||||
### Inhalt
|
### Inhalt
|
||||||
- Dateisystem-Adapter für den Quellordnerzugriff implementieren
|
- Dateisystem-Adapter für den Quellordnerzugriff implementieren.
|
||||||
- Kandidatenermittlung für PDF-Dateien gemäß fachlicher Regel umsetzen, dass PDFs im Quellordner Verarbeitungskandidaten sind
|
- Kandidatenermittlung so umsetzen, dass **PDF-Dateien im Quellordner** als Verarbeitungskandidaten geliefert werden.
|
||||||
- die gelieferten Kandidaten in einer stabilen, für die Application nutzbaren Form bereitstellen
|
- explizit sicherstellen:
|
||||||
- technische Fehler beim Quellordnerzugriff kontrolliert in den Portvertrag überführen
|
- **Nicht-PDF-Dateien** sind keine Kandidaten,
|
||||||
- sicherstellen, dass noch keine Fingerprint-, Persistenz- oder KI-Logik in den Adapter einfließt
|
- Verzeichnisse sind keine Kandidaten,
|
||||||
- JavaDoc für Quellordnerzugriff, Kandidatenermittlung und technische Grenzen ergänzen
|
- eine zusätzliche Rekursion in Unterordnern ist **nicht** Bestandteil von M3.
|
||||||
|
- die Kandidaten in **deterministischer, stabiler Reihenfolge** an die Application liefern.
|
||||||
|
- technische Fehler beim Zugriff auf einzelne Dateisystemobjekte oder beim Lesen des Quellordners kontrolliert in den Port-Vertrag überführen.
|
||||||
|
- JavaDoc für Quellordnerzugriff, Kandidatenbegriff und technische Grenzen ergänzen.
|
||||||
|
|
||||||
|
### Explizit nicht Teil
|
||||||
|
- PDF-Textauslese
|
||||||
|
- Seitenzahlerkennung
|
||||||
|
- Persistenz, Fingerprint, KI, Zielkopie
|
||||||
|
- Bewertung „brauchbarer Text"
|
||||||
|
- Exit-Code-Logik
|
||||||
|
|
||||||
### Fertig wenn
|
### Fertig wenn
|
||||||
- der Quellordner technisch ausgelesen werden kann
|
- der Quellordner technisch ausgelesen werden kann,
|
||||||
- PDF-Verarbeitungskandidaten über den definierten Port verfügbar sind
|
- nur zulässige PDF-Kandidaten über den definierten Port verfügbar sind,
|
||||||
- der Stand ohne weitere M3-Funktionalität fehlerfrei buildbar bleibt
|
- die Kandidatenreihenfolge deterministisch ist,
|
||||||
|
- der Stand fehlerfrei buildbar bleibt.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## AP-003 PDFBox-Adapter für Textauslese und Seitenzahl
|
## AP-003 PDFBox-Adapter für Textauslese, Seitenzahlerkennung und technische Extraktionsfehler
|
||||||
|
|
||||||
### Ziel
|
### Ziel
|
||||||
Für einen einzelnen Verarbeitungskandidaten können Textinhalt und Seitenzahl technisch extrahiert werden.
|
Für genau einen Verarbeitungskandidaten können Textinhalt und Seitenzahl technisch extrahiert werden; technische Extraktionsprobleme werden dabei kontrolliert abgebildet.
|
||||||
|
|
||||||
### Inhalt
|
### Inhalt
|
||||||
- PDFBox-basierten Adapter für die PDF-Auslese implementieren
|
- PDFBox-basierten Adapter für die Auslese eines einzelnen PDF-Kandidaten implementieren.
|
||||||
- Extraktion von Text und Seitenzahl in einem konsistenten Rückgabemodell bereitstellen
|
- Extraktion von
|
||||||
- technische Fehlerfälle aus PDF-Verarbeitung kontrolliert behandeln
|
- vollständigem Textinhalt im M3-Sinne,
|
||||||
- keine fachliche Benennungslogik, keine KI-Vorbereitung und keine Persistenz in den Adapter aufnehmen
|
- sowie Seitenzahl
|
||||||
- sicherstellen, dass der Adapter nur über den definierten Outbound-Port genutzt wird
|
in einem konsistenten Rückgabemodell bereitstellen.
|
||||||
- JavaDoc für PDF-Auslese, Seitenzahl und Fehlerverhalten ergänzen
|
- technische Extraktionsprobleme kontrolliert in den Port-Vertrag überführen, insbesondere für Fälle wie:
|
||||||
|
- PDF kann nicht gelesen werden,
|
||||||
|
- PDF ist defekt oder unbrauchbar,
|
||||||
|
- sonstige technische Fehler während der Auslese.
|
||||||
|
- sicherstellen, dass PDFBox ausschließlich im Adapter-Out verbleibt.
|
||||||
|
- JavaDoc für PDF-Auslese, Seitenzahl und technisches Fehlerverhalten ergänzen.
|
||||||
|
|
||||||
|
### Explizit nicht Teil
|
||||||
|
- fachliche Bewertung des extrahierten Texts
|
||||||
|
- Seitenlimit-Prüfung
|
||||||
|
- Batch-Orchestrierung
|
||||||
|
- Logging-Strategie auf Laufebene
|
||||||
|
- Bootstrap- und CLI-Anpassungen
|
||||||
|
|
||||||
### Fertig wenn
|
### Fertig wenn
|
||||||
- Text und Seitenzahl für ein PDF technisch extrahierbar sind
|
- Text und Seitenzahl für ein PDF technisch extrahierbar sind,
|
||||||
- PDFBox ausschließlich im Adapter-Out verankert ist
|
- technische Extraktionsfehler kontrolliert als Adapter-Ergebnis vorliegen,
|
||||||
- der Build weiterhin fehlerfrei bleibt
|
- PDFBox ausschließlich im Adapter-Out verankert ist,
|
||||||
|
- der Build weiterhin fehlerfrei ist.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## AP-004 Konfigurierbares Seitenlimit und Bewertung „brauchbarer Text“
|
## AP-004 Konfigurierbares Seitenlimit und deterministische Bewertung „brauchbarer Text“
|
||||||
|
|
||||||
### Ziel
|
### Ziel
|
||||||
Die M3-relevanten Inhaltsvorprüfungen werden fachlich-technisch sauber im Kern modelliert.
|
Die M3-Vorprüfungen werden fachnah und beobachtbar modelliert, sodass jedes Dokument nach der Extraktion eindeutig bewertet werden kann.
|
||||||
|
|
||||||
### Inhalt
|
### Inhalt
|
||||||
- M3-relevante Konfigurationswerte vervollständigen, insbesondere das Seitenlimit, soweit im bisherigen Stand noch nicht vollständig nutzbar
|
- M3-relevante Konfigurationswerte vervollständigen, insbesondere das **konfigurierbare Seitenlimit**.
|
||||||
- Bewertungslogik für „brauchbaren Text“ im fachnahen Kern umsetzen
|
- fachliche Bewertungslogik für **„brauchbaren Text“** im Kern umsetzen.
|
||||||
- Prüfung auf Seitenlimitüberschreitung umsetzen
|
- für M3 den Begriff **deterministisch** schneiden:
|
||||||
- Ergebnis so modellieren, dass die Application zwischen verarbeitbaren und nicht verarbeitbaren Kandidaten unterscheiden kann
|
- nach Normalisierung des extrahierten Texts bleibt **mindestens ein Buchstabe oder eine Ziffer** erhalten,
|
||||||
- festlegen und technisch absichern, dass bei fehlendem brauchbarem Text oder überschrittenem Seitenlimit die Verarbeitung dieses Dokuments an dieser Stelle endet
|
- reiner Leerraum bzw. nur bedeutungslose Restzeichen gelten **nicht** als brauchbarer Text.
|
||||||
- keine KI-Schnittstelle und keine spätere Retry-/Persistenzlogik vorwegnehmen
|
- Prüfung auf **Seitenlimitüberschreitung** umsetzen.
|
||||||
- JavaDoc für Bewertungsregeln, Grenzen und Nicht-Ziele von M3 ergänzen
|
- das Ergebnis so modellieren, dass die Application pro Dokument eindeutig unterscheiden kann zwischen:
|
||||||
|
- M3-Vorprüfung bestanden,
|
||||||
|
- deterministischem Inhaltsfehler „kein brauchbarer Text",
|
||||||
|
- deterministischem Inhaltsfehler „Seitenlimit überschritten“.
|
||||||
|
- festlegen und technisch absichern, dass bei diesen beiden Inhaltsfehlern die Verarbeitung **dieses Dokuments** in M3 endet.
|
||||||
|
- JavaDoc für Bewertungsregeln, Grenzen und Nicht-Ziele von M3 ergänzen.
|
||||||
|
|
||||||
|
### Explizit nicht Teil
|
||||||
|
- technische PDF-Auslese
|
||||||
|
- Batch-Schleife über alle Kandidaten
|
||||||
|
- Persistenz- oder Retry-Logik
|
||||||
|
- KI-Schnittstelle oder KI-Aufruf
|
||||||
|
- Dateinamensbildung oder Zielkopie
|
||||||
|
|
||||||
### Fertig wenn
|
### Fertig wenn
|
||||||
- brauchbarer Text und Seitenlimit technisch bewertbar sind
|
- brauchbarer Text und Seitenlimit technisch bewertbar sind,
|
||||||
- nicht verarbeitbare PDFs sauber erkannt werden
|
- die beiden deterministischen Inhaltsfehler sauber erkannt werden,
|
||||||
- der Stand weiterhin ohne KI und Persistenz buildbar und startbar ist
|
- die Bewertungsregeln eindeutig und testbar dokumentiert sind,
|
||||||
|
- der Stand weiterhin ohne KI und Persistenz buildbar ist.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## AP-005 Integration in den Batch-Use-Case: Scannen, Extrahieren, Vorprüfen
|
## AP-005 Integration in den Batch-Use-Case: Scannen, Extrahieren, Vorprüfen und kontrolliertes Ende pro Dokument
|
||||||
|
|
||||||
### Ziel
|
### Ziel
|
||||||
Der M2-No-Op-Batch-Lauf wird zu einem echten M3-Verarbeitungslauf erweitert, jedoch noch ohne KI und ohne Ergebnisdatei.
|
Der M2-No-Op-Batch-Lauf wird zu einem echten M3-Verarbeitungslauf erweitert, jedoch weiterhin ohne KI, ohne Persistenz und ohne Ergebnisdatei.
|
||||||
|
|
||||||
### Inhalt
|
### Inhalt
|
||||||
- bestehenden Batch-Use-Case so erweitern, dass er:
|
- bestehenden Batch-Use-Case so erweitern, dass er:
|
||||||
- den Quellordner scannt
|
- den Quellordner scannt,
|
||||||
- PDF-Kandidaten lädt
|
- PDF-Kandidaten lädt,
|
||||||
- pro Kandidat Text und Seitenzahl extrahiert
|
- pro Kandidat Text und Seitenzahl extrahiert,
|
||||||
- die M3-Vorprüfungen ausführt
|
- die M3-Vorprüfungen ausführt,
|
||||||
- ersten Metadatenfluss für einzelne Dokumente zwischen Adapter-In, Application und Adapter-Out herstellen
|
- pro Kandidat ein eindeutiges M3-Verarbeitungsergebnis erzeugt.
|
||||||
- verarbeitbare und nicht verarbeitbare Kandidaten im Ablauf sauber unterscheiden
|
- sicherstellen, dass ein Dokument nach bestandener M3-Vorprüfung **kontrolliert endet**, ohne bereits M4+-Funktionalität anzustoßen.
|
||||||
- sicherstellen, dass der Lauf trotz fehlender Folge-Meilensteine kontrolliert endet
|
- sicherstellen, dass Dokumente mit den Inhaltsfehlern
|
||||||
- keine Persistenz, keine Fingerprints, keine KI-Aufrufe und keine Zielkopie einführen
|
- „kein brauchbarer Text“ und
|
||||||
- JavaDoc für Ablaufgrenzen und den M3-Verarbeitungsrahmen ergänzen
|
- „Seitenlimit überschritten“
|
||||||
|
ebenfalls **pro Dokument kontrolliert enden**.
|
||||||
|
- ersten durchgängigen Metadatenfluss für einzelne Dokumente zwischen Adapter-In, Application und Adapter-Out herstellen.
|
||||||
|
- keinerlei künstliche Vorab-Schnittstelle für KI einführen, nur um M3 abzuschließen.
|
||||||
|
- JavaDoc für Ablaufgrenzen und den M3-Verarbeitungsrahmen ergänzen.
|
||||||
|
|
||||||
|
### Explizit nicht Teil
|
||||||
|
- Persistenz
|
||||||
|
- Fingerprints
|
||||||
|
- KI-Aufrufe
|
||||||
|
- Dateinamensbildung
|
||||||
|
- Zielkopie
|
||||||
|
- laufübergreifende Retry-Entscheidungen
|
||||||
|
|
||||||
### Fertig wenn
|
### Fertig wenn
|
||||||
- der Batch-Lauf den Quellordner tatsächlich verarbeitet
|
- der Batch-Lauf den Quellordner tatsächlich verarbeitet,
|
||||||
- pro PDF ein kontrollierter M3-Ablauf stattfindet
|
- pro PDF ein kontrollierter M3-Ablauf stattfindet,
|
||||||
- noch keine Funktionalität aus M4+ vorweggenommen wurde
|
- auch der M3-Happy-Path ohne KI und ohne Ergebnisdatei sauber endet,
|
||||||
|
- noch keine Funktionalität aus M4+ vorweggenommen wurde.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## AP-006 Fehlerklassifikation im M3-Lauf und kontrolliertes Logging
|
## AP-006 Dokumentbezogene Fehlerklassifikation und M3-Logging
|
||||||
|
|
||||||
### Ziel
|
### Ziel
|
||||||
Die in M3 bereits fachlich relevanten Fehlerfälle werden im Lauf sauber eingeordnet und nachvollziehbar protokolliert.
|
Die in M3 bereits relevanten dokumentbezogenen Ergebnisse und Fehlerfälle werden eindeutig klassifiziert und nachvollziehbar protokolliert.
|
||||||
|
|
||||||
### Inhalt
|
### Inhalt
|
||||||
- Fehlerfall „kein brauchbarer Text“ als deterministischen Inhaltsfehler im M3-Kontext abbilden
|
- folgende dokumentbezogenen M3-Fälle sauber unterscheiden und abbilden:
|
||||||
- Fehlerfall „Seitenlimit überschritten“ als deterministischen Inhaltsfehler im M3-Kontext abbilden
|
- Vorprüfung bestanden,
|
||||||
- Logging für Kandidatenerkennung, Extraktionsergebnis und Vorprüfungsentscheidungen schärfen
|
- deterministischer Inhaltsfehler „kein brauchbarer Text",
|
||||||
- sicherstellen, dass diese Fälle pro Dokument kontrolliert behandelt werden und den gesamten Lauf nicht unnötig abbrechen
|
- deterministischer Inhaltsfehler „Seitenlimit überschritten",
|
||||||
- sicherstellen, dass aus diesen Fällen heraus keine Folgefunktionalität späterer Meilensteine angestoßen wird
|
- technischer Dokumentfehler bei Kandidatenzugriff oder PDF-Extraktion.
|
||||||
- JavaDoc für Fehlersemantik und M3-spezifische Laufentscheidungen ergänzen
|
- Logging für folgende Punkte schärfen:
|
||||||
|
- Kandidat erkannt,
|
||||||
|
- Extraktion erfolgreich oder technisch fehlgeschlagen,
|
||||||
|
- Vorprüfung bestanden oder mit konkretem Grund beendet.
|
||||||
|
- sicherstellen, dass **dokumentbezogene** Fehler den gesamten Lauf nicht unnötig abbrechen.
|
||||||
|
- sicherstellen, dass aus dokumentbezogenen M3-Fehlern keine Folgefunktionalität späterer Meilensteine ausgelöst wird.
|
||||||
|
- dokumentbezogene technische Fehler ausdrücklich **nicht** als deterministische Inhaltsfehler modellieren.
|
||||||
|
- JavaDoc für Fehlersemantik und M3-spezifische Laufentscheidungen ergänzen.
|
||||||
|
|
||||||
|
### Explizit nicht Teil
|
||||||
|
- Exit-Code-Neudefinition für den gesamten Prozess
|
||||||
|
- Persistenz einer Historie
|
||||||
|
- Retry-Logik
|
||||||
|
- KI, Dateinamensbildung oder Zielkopie
|
||||||
|
|
||||||
### Fertig wenn
|
### Fertig wenn
|
||||||
- die M3-Fehlerfälle nachvollziehbar behandelt und geloggt werden
|
- die dokumentbezogenen M3-Ergebnisse und Fehlerfälle eindeutig unterscheidbar sind,
|
||||||
- der Batch-Lauf bei gemischten Kandidaten kontrolliert weiterlaufen kann
|
- gemischte Läufe mit erfolgreichen Vorprüfungen, Inhaltsfehlern und technischen Dokumentfehlern kontrolliert weiterlaufen,
|
||||||
- weiterhin keine KI-Anbindung oder Persistenz enthalten ist
|
- die Logs die Dokumententscheidung nachvollziehbar machen,
|
||||||
|
- weiterhin keine M4+-Funktionalität enthalten ist.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## AP-007 Bootstrap- und CLI-Anpassungen für den M3-Stand
|
## AP-007 Bootstrap- und CLI-Anpassungen für M3-Konfiguration, Verdrahtung und Exit-Code-Semantik
|
||||||
|
|
||||||
### Ziel
|
### Ziel
|
||||||
Der Programmeinstieg ist an den erweiterten M3-Lauf angepasst und der Gesamtstand bleibt als Batch-Anwendung sauber ausführbar.
|
Der Programmeinstieg ist sauber an den M3-Lauf angepasst; M2-Startschutz und M2-Grundverhalten bleiben erhalten, werden aber für die neuen M3-Fälle präzisiert.
|
||||||
|
|
||||||
### Inhalt
|
### Inhalt
|
||||||
- Bootstrap-Verdrahtung auf die neuen M3-Ports und Adapter erweitern
|
- Bootstrap-Verdrahtung auf die neuen M3-Ports, Adapter und Bewertungsbausteine erweitern.
|
||||||
- CLI-/Batch-Startpfad auf den M3-Verarbeitungsablauf ausrichten
|
- CLI-/Batch-Startpfad auf den realen M3-Verarbeitungsablauf ausrichten.
|
||||||
- Konfigurationsvalidierung für M3-relevante Parameter im Startpfad ergänzen, soweit für Quellordnerzugriff und Seitenlimit erforderlich
|
- M3-relevante Startvalidierung ergänzen, insbesondere für:
|
||||||
- sicherstellen, dass Startschutz, Exit-Code-Grundverhalten und kontrollierte Laufbeendigung aus M2 intakt bleiben
|
- Quellordner vorhanden,
|
||||||
- Smoke-Verhalten des Programms für den M3-Stand nachvollziehbar halten
|
- Quellordner ist lesbares Verzeichnis,
|
||||||
- JavaDoc und `package-info` für aktualisierte Verdrahtung und Modulgrenzen ergänzen
|
- Seitenlimit ist gültig und technisch nutzbar.
|
||||||
|
- Exit-Code-Semantik für M3 explizit absichern:
|
||||||
|
- **Exit-Code 0**, wenn der Lauf technisch ordnungsgemäß durchgeführt wurde, auch wenn einzelne Dokumente mit M3-Inhaltsfehlern oder technischen Dokumentfehlern enden,
|
||||||
|
- **Exit-Code 1** bei harten Start-, Bootstrap- oder Konfigurationsfehlern, insbesondere wenn der Lauf wegen ungültiger Startvoraussetzungen gar nicht sinnvoll beginnen kann.
|
||||||
|
- sicherstellen, dass der bestehende M2-Startschutz und die kontrollierte Laufbeendigung erhalten bleiben und nicht neu erfunden werden.
|
||||||
|
- JavaDoc und `package-info` für aktualisierte Verdrahtung, Konfiguration und Modulgrenzen ergänzen.
|
||||||
|
|
||||||
|
### Explizit nicht Teil
|
||||||
|
- neue fachliche Dokumentverarbeitung jenseits von M3
|
||||||
|
- Persistenz- oder KI-Verdrahtung
|
||||||
|
- spätere Retry- oder Idempotenzlogik
|
||||||
|
|
||||||
### Fertig wenn
|
### Fertig wenn
|
||||||
- das Programm im M3-Stand vollständig startbar ist
|
- das Programm im M3-Stand vollständig startbar ist,
|
||||||
- die neuen Adapter korrekt verdrahtet sind
|
- die neuen Adapter korrekt verdrahtet sind,
|
||||||
- der Batch-Lauf kontrolliert endet und der Build fehlerfrei bleibt
|
- die M3-Startvalidierung greift,
|
||||||
|
- die Exit-Code-Semantik für dokumentbezogene Fehler versus harte Startfehler eindeutig umgesetzt ist,
|
||||||
|
- der Build fehlerfrei bleibt.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## AP-008 Tests für Kandidatenermittlung, PDF-Auslese, Vorprüfungen und M3-Abschlussstand
|
## AP-008 Tests für Filterlogik, Extraktion, Vorprüfungen, M3-Happy-Path und Exit-Code-Verhalten
|
||||||
|
|
||||||
### Ziel
|
### Ziel
|
||||||
Der vollständige M3-Zielzustand wird automatisiert abgesichert und als konsistenter Übergabestand nachgewiesen.
|
Der vollständige M3-Zielzustand wird automatisiert abgesichert und als konsistenter Übergabestand nachgewiesen.
|
||||||
|
|
||||||
### Inhalt
|
### Inhalt
|
||||||
- Unit-Tests für die Kandidatenermittlung von PDF-Dateien implementieren
|
- Unit-Tests für die PDF-Kandidatenermittlung implementieren, insbesondere für:
|
||||||
- Tests für PDF-Textauslese und Seitenzahlerkennung implementieren
|
- PDF-Datei wird erkannt,
|
||||||
- Tests für die Bewertung „brauchbarer Text“ implementieren
|
- Nicht-PDF-Datei wird ignoriert,
|
||||||
- Tests für den Fehlerfall „Seitenlimit überschritten“ implementieren
|
- Verzeichnis wird ignoriert,
|
||||||
- Tests ergänzen, die belegen, dass Dokumente mit fehlendem brauchbarem Text oder überschrittenem Seitenlimit im M3-Ablauf kontrolliert enden und keine Folgefunktionalität späterer Meilensteine auslösen
|
- Reihenfolge ist deterministisch.
|
||||||
- Tests für Batch-Use-Case-Integration und Bootstrap-Verdrahtung ergänzen, soweit in M3 sinnvoll
|
- Tests für PDF-Textauslese und Seitenzahlerkennung implementieren.
|
||||||
- den M3-Stand abschließend auf Konsistenz, Architekturtreue und Nicht-Vorgriff auf M4+ prüfen
|
- Tests für technische Extraktionsfehler implementieren.
|
||||||
|
- Tests für die deterministische Bewertung „brauchbarer Text“ implementieren.
|
||||||
|
- Tests für den Fehlerfall „Seitenlimit überschritten“ implementieren.
|
||||||
|
- Tests ergänzen, die belegen, dass Dokumente mit
|
||||||
|
- fehlendem brauchbarem Text,
|
||||||
|
- überschrittenem Seitenlimit,
|
||||||
|
- oder technischem Dokumentfehler
|
||||||
|
im M3-Ablauf kontrolliert enden und den Gesamtbatch nicht unnötig abbrechen.
|
||||||
|
- explizite Tests für den **M3-Happy-Path** ergänzen: gültige PDF wird erkannt, extrahiert, vorgeprüft und endet kontrolliert **ohne** KI-Aufruf und **ohne** Zielkopie.
|
||||||
|
- Tests für Exit-Code-Verhalten ergänzen:
|
||||||
|
- `0` bei technisch ordnungsgemäßem Lauf trotz dokumentbezogener Fehler,
|
||||||
|
- `1` bei harten Start-/Bootstrap-/Konfigurationsfehlern.
|
||||||
|
- Tests für Bootstrap- und Use-Case-Verdrahtung ergänzen, soweit in M3 sinnvoll.
|
||||||
|
- den M3-Stand abschließend auf Konsistenz, Architekturtreue und Nicht-Vorgriff auf M4+ prüfen.
|
||||||
|
|
||||||
|
### Explizit nicht Teil
|
||||||
|
- Tests für KI, Persistenz, Fingerprint oder Zielkopie
|
||||||
|
- Tests für spätere Retry-Logik
|
||||||
|
|
||||||
### Fertig wenn
|
### Fertig wenn
|
||||||
- die Test-Suite für den M3-Umfang grün ist
|
- die Test-Suite für den M3-Umfang grün ist,
|
||||||
- der definierte M3-Zielzustand vollständig erreicht ist
|
- der definierte M3-Zielzustand vollständig erreicht ist,
|
||||||
- ein fehlerfreier, übergabefähiger Stand vorliegt
|
- die wichtigsten M3-Randfälle einschließlich Happy-Path und Exit-Code-Semantik automatisiert abgesichert sind,
|
||||||
|
- ein fehlerfreier, übergabefähiger Stand vorliegt.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Abschlussbewertung
|
## Abschlussbewertung
|
||||||
|
|
||||||
Die Arbeitspakete sind inhaltlich konsistent, widerspruchsfrei und sauber auf den Meilenstein **M3** zugeschnitten. Sie decken den vollständigen Zielumfang von **„Dateisystemzugriff, Kandidatenermittlung und PDF-Textauslese“** ab, ohne Inhalte späterer Meilensteine wie Fingerprint, Persistenz, KI-Integration, Dateinamensbildung oder Zielkopie vorwegzunehmen.
|
Die Arbeitspakete sind bewusst so nachgeschärft, dass sie für eine **zweistufige KI-Bearbeitung** geeignet sind: Eine KI kann aus jedem Arbeitspaket einen präzisen Prompt ableiten, und eine zweite KI kann das jeweilige Paket anschließend ohne implizite Annahmen vollständig umsetzen.
|
||||||
|
|
||||||
|
Der vollständige M3-Zielzustand aus `meilensteine.md` wird abgedeckt. Gleichzeitig bleiben die Grenzen zu M1, M2 und allen späteren Meilensteinen gewahrt.
|
||||||
|
|||||||
Reference in New Issue
Block a user