Dokumentation und Arbeitspakete angelegt

This commit is contained in:
2026-04-09 06:27:29 +02:00
parent fa36297e32
commit 79109594aa
13 changed files with 1069 additions and 0 deletions

View File

@@ -0,0 +1,86 @@
# AP09 Altlogik aus M1 entkoppeln (Parser/Validator einfrieren)
## Ziel
Die **bereits vorhandene Parser- und Validator-Logik** aus der früheren Implementierung (vor dieser M1-Planung) wird **nicht gelöscht**, aber sauber **entkoppelt** vom aktiven M1-Lauf. Sie wird als „Vorbau für M3 und folgende" explizit markiert und ist während M1 **nicht** Bestandteil der aktiven Verarbeitungskette.
Hintergrund: Der ursprüngliche Stand im Repository enthält bereits `DefaultInputFileParser`, `DefaultSegmentLineTokenizer`, `DefaultStructureValidator`, `DefaultFieldValidator`, `DefaultInputFileValidator` und `validation.model.ValidationResult`. Das ist wertvoll und darf nicht verloren gehen — gehört aber fachlich in M3 (Parser), M5 (Feldregeln) und M6 (Beziehungen), nicht in M1.
## Voraussetzungen
- AP03 (Migration), AP05 (neues Befundmodell), AP06 (neuer Bootstrap/CLI)
## Scope IN
### Einfrieren statt Löschen
- Die bestehenden Klassen bleiben **vollständig erhalten**, inklusive Tests
- Sie werden in ein klar erkennbares Unterpaket verschoben, z.B.:
```
de.gecheckt.asv.legacy.parser
de.gecheckt.asv.legacy.validation
de.gecheckt.asv.legacy.model
```
oder alternativ:
```
de.gecheckt.asv.application.preview
```
Die Entscheidung zwischen `legacy` und `preview` wird im Bericht dokumentiert und begründet. Empfehlung: **`preview`**, weil „legacy" suggeriert, dass etwas alt und zu entsorgen ist — tatsächlich wird der Code in M3/M5/M6 weiterverwendet.
- Jedes Paket bekommt ein `package-info.java` mit deutlichem Hinweis:
```
Diese Klassen stammen aus einer früheren Implementierung und sind
für die Meilensteine M3 bis M6 vorgesehen. Sie sind in M1 nicht Teil
der aktiven Validierungskette. Änderungen an diesen Klassen während
M1 sind zu vermeiden.
```
### Entkopplung vom Lauf
- `CliRunner` und `Bootstrap` dürfen die Preview-Klassen **nicht** aufrufen
- der aktive M1-Lauf verwendet ausschließlich den Dummy-Pfad aus AP06 (Datei einlesen, leeren `ValidationReport` erzeugen)
- die alten Tests der Preview-Klassen laufen **weiterhin grün mit**, damit der Code nicht verrottet
- `validation.model.ValidationResult` (alt) bleibt im Preview-Paket und wird **nicht** mit dem neuen `ValidationReport` aus AP05 verwechselt
### Saubere Kennzeichnung
- In `README.md` des Repos (falls vorhanden, sonst anlegen) ein kurzer Abschnitt „Preview-Code" mit Verweis auf `docs/arbeitspakete/m1/AP09-altlogik-einfrieren.md`
- Kein `@Deprecated`! Deprecated würde bedeuten „wird entfernt" — das Gegenteil ist der Fall.
## Scope OUT
- Weiterentwicklung der Preview-Klassen
- Änderung der Preview-Tests (außer notwendige Import-Anpassungen durch den Package-Umzug)
- Integration der Preview-Klassen in die neue `domain.finding`-Struktur (das ist explizit M3+)
- Löschung von Preview-Klassen, auch wenn sie wie Duplikate wirken
## Schritte
1. Branch `m1/ap09-preview-einfrieren`
2. Zielpaket wählen (`preview` empfohlen) und im Bericht begründen
3. Alle Parser-Klassen verschieben
4. Alle Validator-Klassen verschieben
5. `validation.model.ValidationResult` und `validation.model.*` mit verschieben
6. Tests entsprechend verschieben; Imports anpassen
7. `CliRunner`/`Bootstrap` auf Preview-Imports prüfen — **darf keine haben**, sonst entkoppeln
8. `package-info.java` mit Warnhinweis in jedem Preview-Unterpaket anlegen
9. README-Abschnitt „Preview-Code" ergänzen
10. `mvn clean verify` grün bekommen (alle Tests der Preview-Klassen laufen weiter mit)
11. Commit `M1-AP09: Alt-Parser und Alt-Validator nach preview-Paket, vom M1-Lauf entkoppelt`
12. Abschlussbericht schreiben
## Abnahmekriterien
- alle ursprünglich vorhandenen Parser- und Validator-Klassen liegen im Preview-Paket
- alle zugehörigen Tests laufen weiterhin grün
- `grep -rn "de.gecheckt.asv.preview" src/main/java/de/gecheckt/asv/adapter src/main/java/de/gecheckt/asv/bootstrap src/main/java/de/gecheckt/asv/application` ist **leer** (keine Referenzen aus dem aktiven Code)
- `package-info.java` mit Warnhinweis in jedem Preview-Unterpaket
- README enthält Abschnitt „Preview-Code"
- keine Klasse wurde gelöscht (`git log --diff-filter=D` für diesen Commit zeigt nur Verschiebungen)
- `mvn clean verify` ist grün
- Abschlussbericht liegt vor
## Rest-Risiken und offene Punkte
- Bei Wiederaufnahme in M3 wird zu klären sein, wie der Preview-Code an das neue Befundmodell angebunden wird. Das ist explizit M3-Aufgabe, nicht M1.
- Falls die Preview-Tests beim Package-Umzug brechen (wegen relativer Ressourcenpfade o.ä.), müssen sie einmalig angepasst werden. Das ist kein Scope-Verstoß, sondern Teil des Umzugs.
## Bericht
`docs/arbeitspakete/m1/berichte/AP09-bericht.md` nach `templates/ap-bericht.md`.