M13 vollständig abgeschlossen: V2.0-Freigabe (AP-001 bis AP-009)

- AP-001: Betriebs- und Startdokumentation für GUI und headless
  konsolidiert (betrieb.md, README.md)
- AP-002: Endbenutzer-Bedienanleitung gui-bedienanleitung.md angelegt
  (deskriptiv, 13 Kapitel, deutsch, Windows-Hinweise)
- AP-003: Konfigurationsbeispiele docs/examples/application.properties
  und docs/examples/prompt.txt konsolidiert, konsistent mit Standardvorlage
- AP-004: Regressionstests für headless Abwärtskompatibilität
  (JAR-Smoke-IT mit --config-Varianten und JavaFX-Freiheit)
- AP-005: GUI-Smoke-Tests für V2.0-Kernumfang vervollständigt
  (Startup-Notice-Sichtbarkeit im Header)
- AP-006: Build- und Packaging-Dokumentation im Abschnitt
  "Build und Packaging" in betrieb.md, README-Artefaktnamen korrigiert
- AP-007: Integrierte Gesamtprüfung durchgeführt, V2.0-Abschnitt in
  befundliste.md — keine Release-Blocker, zwei nicht blockierende
  Restpunkte (R1 ByteBuddy-Warning, R2 fehlender visueller GUI-Render-Test)
- AP-008: entfiel (keine Release-Blocker zu beheben)
- AP-009: Finale Gesamtprüfung, Freigabedokument docs/freigabe-v2_0.md
  mit Git-HEAD, Build-/Test-Ergebnissen, Freigabeaussage. Ein während
  der Stichprobe entdeckter Doku-Defekt (R3: API-Key-Legacy-Variable)
  wurde unmittelbar in gui-bedienanleitung.md korrigiert.

V2.0 ist freigabefähig. 1.403 Tests grün, 0 Failures, 0 Errors.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-04-20 22:50:51 +02:00
parent 1bb7a42735
commit 016da8318d
10 changed files with 1399 additions and 21 deletions
+42 -10
View File
@@ -4,14 +4,21 @@ Ein lokal gestartetes Java-Programm zur KI-gestützten Umbenennung bereits OCR-v
Die Anwendung liest PDF-Dateien aus einem konfigurierbaren Quellordner, extrahiert den Text, ermittelt daraus per KI einen normierten Dateinamen und legt **eine Kopie** im Zielordner ab. Die Quelldateien bleiben unverändert.
> **V2.0:** Die Anwendung enthält ab V2.0 eine lokale JavaFX-Desktop-GUI als Standardstart.
> Die GUI dient der Konfiguration, Validierung und technischen Diagnose.
> Der headless Batch-Betrieb bleibt über `--headless` vollständig erhalten.
> Details zum Betrieb: [`docs/betrieb.md`](docs/betrieb.md)
## Zielbild
Der PDF-Umbenenner ist bewusst als schlanke Batch-Anwendung ausgelegt:
Der PDF-Umbenenner ist als schlanke, lokal gestartete Anwendung ausgelegt:
- **Java 21**
- **Maven Multi-Module**
- **ausführbares Standalone-JAR**
- **lokaler Start**, z. B. über den **Windows Task Scheduler**
- **ausführbares Standalone-JAR** (ein gemeinsames JAR für GUI und headless)
- **GUI-Standardstart** ab V2.0 (JavaFX-Desktop, offiziell Windows)
- **headless Betrieb** über `--headless`, z. B. für den **Windows Task Scheduler**
- **`--config <pfad>`** für GUI und headless
- **kein Webserver**
- **kein Applikationsserver**
- **keine Dauerlauf-Anwendung**
@@ -86,6 +93,7 @@ Das Projekt ist strikt nach **Ports and Adapters / Hexagonal Architecture** aufg
- `pdf-umbenenner-domain`
- `pdf-umbenenner-application`
- `pdf-umbenenner-adapter-in-cli`
- `pdf-umbenenner-adapter-in-gui`
- `pdf-umbenenner-adapter-out`
- `pdf-umbenenner-bootstrap`
@@ -135,13 +143,30 @@ Unter Windows:
## Start
Das ausführbare Artefakt wird im Bootstrap-Modul erzeugt. Der Start erfolgt als normales Java-Programm:
Das ausführbare Artefakt wird im Bootstrap-Modul erzeugt.
**GUI-Standardstart** (öffnet die JavaFX-Desktop-Oberfläche):
```bash
java -jar <bootstrap-jar>.jar
java -jar pdf-umbenenner-bootstrap/target/pdf-umbenenner-bootstrap-0.0.1-SNAPSHOT.jar
```
Die konkrete JAR-Datei hängt vom aktuellen Build-Stand ab.
**headless Betrieb** (Batch-/Scheduler-Start ohne GUI):
```bash
java -jar pdf-umbenenner-bootstrap/target/pdf-umbenenner-bootstrap-0.0.1-SNAPSHOT.jar --headless
```
**Explizite Konfigurationsdatei** (für GUI und headless):
```bash
java -jar pdf-umbenenner-bootstrap/target/pdf-umbenenner-bootstrap-0.0.1-SNAPSHOT.jar --config C:\Pfad\zur\config.properties
java -jar pdf-umbenenner-bootstrap/target/pdf-umbenenner-bootstrap-0.0.1-SNAPSHOT.jar --headless --config C:\Pfad\zur\config.properties
```
Das JAR ist das einzige Distributionsartefakt und enthält JavaFX für den GUI-Start bereits
integriert. Ausführliche Build-, Packaging- und Starthinweise sowie Informationen zur JavaFX-
Integration und zum headless Betrieb befinden sich in [`docs/betrieb.md`](docs/betrieb.md).
## Logging, Status und Nachvollziehbarkeit
@@ -160,7 +185,10 @@ Die maßgeblichen Dokumente sind:
- `CLAUDE.md`
- `docs/specs/technik-und-architektur.md`
- `docs/specs/fachliche-anforderungen.md`
- `docs/specs/meilensteine.md`
- `docs/specs/meilensteine-v2_0.md`
- `docs/betrieb.md`
- `docs/gui-bedienanleitung.md`
- `docs/freigabe-v2_0.md`
- `docs/workpackages/...`
Empfohlene Leserichtung:
@@ -169,7 +197,9 @@ Empfohlene Leserichtung:
2. technische Zielarchitektur
3. fachliche Anforderungen
4. Meilensteine
5. aktives Arbeitspaket
5. `docs/betrieb.md` für Betriebs- und Startdetails
6. `docs/gui-bedienanleitung.md` für die GUI-Bedienung
7. aktives Arbeitspaket
## Entwicklungsleitplanken
@@ -181,14 +211,16 @@ Empfohlene Leserichtung:
## Status des Projekts
Das Repository verfolgt einen inkrementellen, meilensteinbasierten Ausbau. Der aktuelle Produktstand baut auf einem vollständig implementierten Kern für:
Das Repository verfolgt einen inkrementellen, meilensteinbasierten Ausbau. Der aktuelle Produktstand (V2.0) baut auf einem vollständig implementierten Kern für:
- Konfiguration und Startvalidierung
- Quellordner-Scan und PDF-Textauslese
- Fingerprint, SQLite-Persistenz und Idempotenz
- KI-Integration für Benennungsvorschläge
- KI-Integration für Benennungsvorschläge (OpenAI-kompatibel und Anthropic Claude)
- Dateinamensbildung und Zielkopie
- Retry-Logik, Logging und betriebliche Robustheit
- JavaFX-Desktop-GUI als Standardstart (Konfigurationseditor, Validierung, technische Tests)
- headless Batch-Betrieb über `--headless` (rückwärtskompatibel zu V1.x)
## Lizenz / Nutzung