1
0
Files
pdf-umbenenner/docs/workpackages/M2 - Arbeitspakete.md

8.2 KiB
Raw Blame History

M2 - Arbeitspakete

Geltungsbereich

Dieses Dokument beschreibt ausschließlich die Arbeitspakete für den definierten Meilenstein M2 Hexagonaler Kern, Batch-Startfall und Startschutz.

Die Arbeitspakete sind so geschnitten, dass jedes Paket in einem Durchgang von einer KI umgesetzt werden kann und danach wieder ein fehlerfreier, buildbarer Stand vorliegt.

Konsistenz- und Schnittregeln

  • Jedes Arbeitspaket liefert einen in sich geschlossenen, fehlerfreien Zwischenstand.
  • Die Reihenfolge ist verbindlich, weil jedes Paket auf dem vorherigen Stand aufbaut.
  • Der Fokus bleibt strikt auf M2.
  • Es erfolgt kein Vorgriff auf spätere Meilensteine.
  • Insbesondere sind in M2 noch nicht enthalten:
    • Dateisystemscan des Quellordners
    • PDF-Filterung oder PDF-Textauslese
    • Fingerprint-Berechnung
    • SQLite-Persistenz
    • KI-Anbindung
    • Prompt-Verarbeitung
    • Dateinamensbildung
    • Zielkopie
    • fachliche Retry-Logik
    • Verarbeitung einzelner Dokumente

AP-001 Domain-Grundobjekte und Statusmodell

Ziel

Der hexagonale Kern für den Batch-Lauf wird fachlich und technisch sauber vorbereitet.

Inhalt

  • minimale, für M2 erforderliche Domain-Grundobjekte anlegen
  • Statusmodell für den Batch-Kontext anlegen, insbesondere die in M2 bereits relevanten Statuswerte
  • zentrale Value Objects für den Laufkontext vorbereiten, soweit für M2 erforderlich
  • klare Abgrenzung sicherstellen: keine Infrastrukturklassen, keine Adapterdetails, keine Dateisystem- oder Lock-Implementierungen in der Domain
  • erste JavaDoc- und package-info-Beschreibungen für Domain-Verantwortung und Architekturgrenzen ergänzen

Fertig wenn

  • die Domain enthält die für M2 nötigen Kernobjekte und Statuswerte
  • die Typen sind frei von Infrastrukturabhängigkeiten
  • der Reactor-Build bleibt fehlerfrei

AP-002 Zentrale Ports und Inbound-Vertrag für den Batch-Lauf

Ziel

Die Anwendungsgrenzen des M2-Stands werden explizit und architektonisch sauber definiert.

Inhalt

  • zentralen Inbound-Port für den Batch-Startfall anlegen, insbesondere RunBatchProcessingUseCase
  • für M2 erforderliche Outbound-Ports definieren, insbesondere für:
    • Run-Lock
    • Clock bzw. Zeitbezug, soweit für Laufkontext sinnvoll
  • saubere Port-Signaturen für den Batch-Lauf modellieren
  • Rückgabemodell für den Batch-Lauf so schneiden, dass Bootstrap und CLI später Exit-Codes kontrolliert ableiten können
  • JavaDoc für Port-Zweck, Verantwortlichkeiten und erlaubte Abhängigkeitsrichtungen ergänzen

Fertig wenn

  • die Ports vollständig im Application-Kern definiert sind
  • Inbound- und Outbound-Rollen klar getrennt sind
  • noch keine technische Implementierung in Ports oder Domain eingebracht wurde

AP-003 Lauf-ID-Konzept und Batch-Laufkontext

Ziel

Jeder Programmlauf erhält einen konsistenten technischen Kontext, ohne bereits in fachliche Dokumentverarbeitung einzusteigen.

Inhalt

  • Lauf-ID-Konzept einführen
  • technische Repräsentation eines Batch-Laufs bzw. Laufkontexts modellieren
  • Start- und Endbezug des Laufs für M2 vorbereiten
  • Schnittstelle zwischen Use Case, CLI-Adapter und Bootstrap für Übergabe bzw. Erzeugung des Laufkontexts festlegen
  • sicherstellen, dass das Laufkonzept unabhängig von späterer PDF-Verarbeitung nutzbar bleibt

Fertig wenn

  • ein konsistenter Laufkontext vorhanden ist
  • eine Lauf-ID je Programmlauf eindeutig bereitgestellt werden kann
  • der Stand weiterhin ohne Dokumentverarbeitung buildbar und startbar ist

AP-004 No-Op-Implementierung des Batch-Use-Cases

Ziel

Der zentrale Batch-Startfall wird erstmals ausführbar, jedoch noch ohne echte Dokumentverarbeitung.

Inhalt

  • Application-Implementierung für den Inbound-Use-Case anlegen
  • kontrollierten No-Op-Batch-Ablauf implementieren
  • Ablaufrahmen für M2 herstellen:
    • Batch-Lauf initialisieren
    • Laufkontext übernehmen
    • Startschutz einbinden
    • sauber beenden
  • noch keine Quellordnerverarbeitung, keine PDF-Verarbeitung und keine Persistenz einführen
  • JavaDoc für Use-Case-Verantwortung und explizite Nicht-Ziele von M2 ergänzen

Fertig wenn

  • der Batch-Use-Case technisch aufrufbar ist
  • der Ablauf kontrolliert startet und kontrolliert endet
  • noch keine fachliche Dokumentverarbeitung stattfindet

AP-005 CLI-/Batch-Adapter und Bootstrap-Verdrahtung

Ziel

Der Batch-Lauf wird über einen klaren Inbound-Adapter gestartet und sauber aus dem Bootstrap verdrahtet.

Inhalt

  • CLI-/Batch-Adapter für den Programmeinstieg implementieren
  • Adapter so anbinden, dass der Inbound-Use-Case ausschließlich über seine Schnittstelle aufgerufen wird
  • Bootstrap-Verdrahtung für M2 vervollständigen
  • Objektgraph für den M2-Stand ohne Framework-Magie und ohne Architekturbruch aufbauen
  • Startpfad so strukturieren, dass spätere Meilensteine anschlussfähig bleiben
  • JavaDoc und package-info für Adapter-In, Bootstrap und Verantwortungsgrenzen ergänzen

Fertig wenn

  • das Programm als Batch-Prozess über den CLI-Adapter startet
  • der Inbound-Use-Case aus dem Bootstrap korrekt erreicht wird
  • die Abhängigkeitsrichtung technisch sichtbar nach innen zeigt

AP-006 Run-Lock-Port und Dateibasiertes Startschutz-Adapter

Ziel

Der technische Startschutz wird eingeführt, damit parallele Instanzen kontrolliert verhindert werden.

Inhalt

  • Run-Lock-Port konkret für M2 ausmodellieren, falls noch nicht vollständig geschehen
  • erste technische Run-Lock-Implementierung im Adapter-Out anlegen
  • exklusive Lock-Datei als technische Umsetzung einführen
  • Lock-Erwerb, Lock-Freigabe und sauberes Ressourcenhandling umsetzen
  • Verhalten für bereits laufende Instanz definieren und in den Batch-Ablauf integrieren
  • sicherstellen, dass keine Lock-Implementierungsdetails in Domain oder Application durchsickern
  • JavaDoc für Startschutz, Lock-Lebensdauer und technische Grenzen ergänzen

Fertig wenn

  • eine Instanz den Lock korrekt setzt und wieder freigibt
  • eine zweite parallele Instanz kontrolliert sofort beendet wird
  • der Build und der normale Einzelstart weiterhin fehlerfrei funktionieren

AP-007 Exit-Code-Grundverhalten und kontrollierte Laufbeendigung

Ziel

Der M2-Stand beendet sich in allen bereits relevanten Start- und Startschutzsituationen kontrolliert und technisch eindeutig.

Inhalt

  • Exit-Code-Grundverhalten für M2 umsetzen:
    • 0 für technisch ordnungsgemäß ausgeführten Lauf
    • 1 für harte Start-/Bootstrap-Fehler
  • Startschutz-Fall sauber in die Exit-Code-Ableitung integrieren
  • kontrollierte Fehlerbehandlung zwischen Bootstrap, CLI-Adapter und Use Case vervollständigen
  • M2-relevante Start- und End-Logs schärfen
  • sicherstellen, dass die Exit-Code-Logik ohne spätere Fachlogik bereits stabil nutzbar ist

Fertig wenn

  • der M2-Stand in normalen und fehlerhaften Startsituationen kontrolliert endet
  • Exit-Codes für M2 konsistent gesetzt werden
  • der Stand weiterhin keine fachliche Dokumentverarbeitung enthält

AP-008 Tests für Statusmodell, Startschutz, Verdrahtung und M2-Abschlussstand

Ziel

Der vollständige M2-Zielzustand wird automatisiert abgesichert und als konsistenter Übergabestand nachgewiesen.

Inhalt

  • Unit-Tests für Domain-Grundobjekte und Statusmodell implementieren
  • Tests für Lauf-ID- und Laufkontext-Grundverhalten implementieren
  • Tests für Lock-Verhalten implementieren, insbesondere:
    • Lock wird gesetzt
    • Lock wird freigegeben
    • zweite Instanz scheitert kontrolliert
  • Tests für Bootstrap- und Use-Case-Verdrahtung ergänzen, soweit in M2 sinnvoll
  • Tests für Exit-Code-Verhalten bei Startschutz- und Bootstrap-Fehlern ergänzen
  • den M2-Stand abschließend auf Konsistenz, Architekturtreue und Nicht-Vorgriff auf M3+ prüfen

Fertig wenn

  • die Test-Suite für den M2-Umfang grün ist
  • der definierte M2-Zielzustand vollständig erreicht ist
  • ein fehlerfreier, übergabefähiger Stand vorliegt

Abschlussbewertung

Die Arbeitspakete sind inhaltlich konsistent, widerspruchsfrei und sauber auf den Meilenstein M2 zugeschnitten. Sie decken den vollständigen Zielumfang von „Hexagonaler Kern, Batch-Startfall und Startschutz“ ab, ohne Inhalte späterer Meilensteine wie PDF-Verarbeitung, Persistenz, KI-Integration oder Dateinamensbildung vorwegzunehmen.