--- model: sonnet --- # AP09 – Altlogik einfrieren (Preview-Code deaktivieren) > **Meilenstein:** M1 > **Vorgänger:** AP03, AP05, AP06 ✅ erforderlich > **Nachfolger:** AP10, AP11 > **Grundlage:** AP00-ist-analyse.md §§ 7, 8 > **Entscheidungsprotokoll:** `docs/arbeitspakete/m1/E00-entscheidungsprotokoll.md` (E-01 Option b, E-03 leere Testklasse) ## Ziel Die bestehende Preview-Parser- und Validator-Logik (`DefaultStructureValidator`, `DefaultFieldValidator`, `DefaultInputFileValidator`) wird **nicht gelöscht und nicht verschoben**, sondern im Bootstrap **nicht mehr verdrahtet**. Ein M1-Lauf erzeugt keine fachlichen ASVREC-/ASVFEH-Befunde mehr. Die Klassen bleiben physisch an ihrem Ort als M3-Vorbau. ## Hintergrund und Entscheidung Laut AP00-Ist-Analyse läuft `DefaultStructureValidator` (19 ASVREC/ASVFEH-Regeln) aktiv im produktiven Lauf mit — was dem M1-Ziel „noch keine ASV-Fachvalidierung" widerspricht. **Entscheidung E-01: Option (b)** — Klassen bleiben in ihren Paketen, werden aber im Bootstrap nicht mehr verdrahtet. Für M3 kann die Verdrahtung direkt wieder aktiviert werden. Kein Paketumzug, keine Umbenennung, kein `@Deprecated`. ## Voraussetzungen - AP03 (Paketstruktur) - AP05 (neues Befundmodell) - AP06 (neuer Bootstrap/CLI) ## Scope IN ### 1. Bootstrap-Verdrahtung anpassen In `bootstrap.Main`: `DefaultInputFileValidator` erhält statt `DefaultStructureValidator` und `DefaultFieldValidator` jeweils eine **Null-Implementation** — eine leere Implementierung der jeweiligen Interfaces, die keine Befunde produziert. Die Null-Implementierungen können als benannte Klassen in `bootstrap` oder `application` angelegt werden: ```java /** M1-Platzhalter. Ab M3 durch DefaultStructureValidator ersetzen. */ public final class NoOpStructureValidator implements StructureValidator { @Override public List validate(ValidationContext ctx) { return List.of(); // bewusst leer in M1 } } ``` Analog für `NoOpFieldValidator`. ### 2. Einfriermarker als JavaDoc-Kommentar `DefaultStructureValidator` und `DefaultFieldValidator` erhalten folgenden JavaDoc-Kommentar — keine andere Änderung: ```java /** * M3-Vorbau. In M1 bewusst nicht im produktiven Lauf verdrahtet. * Wird ab M3 wieder aktiviert und gegen die finalen Regelklassifikationen * (V1-V/T/N/K) aus fachliche-anforderungen.md bewertet. * * @see docs/arbeitspakete/m1/E00-entscheidungsprotokoll.md E-01 */ ``` ### 3. Abnahmetest Ein Integrationstest prüft, dass ein Lauf mit einer beliebigen Testdatei **keine** fachlichen Findings mit Bezug auf ASVREC-/ASVFEH-Segmentregeln erzeugt. ### 4. Aufräumen - `DefaultStructureValidatorTestAdditional` (leere Testklasse ohne `@Test`-Methoden) löschen (gemäß E-03) - Sicherstellen dass `logs/` in `.gitignore` steht (falls AP06 das noch nicht erledigt hat) - Aktive Tests von `DefaultStructureValidator` und `DefaultFieldValidator` bleiben **erhalten und grün** — sie testen den M3-Vorbau ### 5. Grep-Nachweis im Bericht ```bash grep -rn "DefaultStructureValidator\|DefaultFieldValidator" \ src/main/java/de/gecheckt/asv/adapter \ src/main/java/de/gecheckt/asv/bootstrap ``` Muss **leer** sein — der aktive Code darf diese Klassen nicht mehr referenzieren. ## Scope OUT - Paketumzug der Preview-Klassen (explizit **nicht** — Entscheidung E-01 Option b) - Inhaltliche Änderung an `DefaultStructureValidator` oder `DefaultFieldValidator` - Fachliche Neubewertung der 19 Preview-Regeln (das ist M3) - Löschen von Preview-Klassen ## Schritte 1. `NoOpStructureValidator` und `NoOpFieldValidator` anlegen 2. `bootstrap.Main` umverdrahten: Preview-Validatoren durch NoOp-Implementierungen ersetzen 3. JavaDoc-Einfriermarker in `DefaultStructureValidator` und `DefaultFieldValidator` ergänzen 4. `DefaultStructureValidatorTestAdditional` löschen 5. Grep-Nachweis ausführen und im Bericht dokumentieren 6. Integrationstest: Lauf erzeugt keine ASVREC-/ASVFEH-Segmentbefunde 7. `mvn clean verify` grün — alle bisherigen Tests der Preview-Klassen müssen weiterhin grün sein 8. Abschlussbericht schreiben ## Abnahmekriterien - [ ] `NoOpStructureValidator` und `NoOpFieldValidator` existieren - [ ] `bootstrap.Main` verdrahtet keine Preview-Validatoren mehr - [ ] Grep auf `DefaultStructureValidator`/`DefaultFieldValidator` in `adapter` und `bootstrap` ist leer (Nachweis im Bericht) - [ ] Einfriermarker-JavaDoc in beiden Preview-Klassen vorhanden - [ ] `DefaultStructureValidatorTestAdditional` ist gelöscht - [ ] Bestehende Tests der Preview-Klassen laufen weiterhin grün - [ ] Integrationstest: Lauf mit Testdatei erzeugt keine ASVREC-/ASVFEH-Segmentbefunde - [ ] `mvn clean verify` grün - [ ] Abschlussbericht unter `docs/arbeitspakete/m1/berichte/AP09-bericht.md` ## Rest-Risiken und offene Punkte - Bei Wiederaufnahme in M3: jede der 19 Preview-Regeln ist neu gegen V1-V/T/N/K-Klassifikation zu bewerten. Explizit M3-Aufgabe. - Falls Preview-Tests beim Einfrieren brechen (z.B. wegen Interface-Änderungen durch AP05): einmalige Anpassung der Testimports ist kein Scope-Verstoß, sondern Teil der Konsolidierung. ## Bericht `docs/arbeitspakete/m1/berichte/AP09-bericht.md` nach `docs/arbeitspakete/m1/templates/ap-bericht.md`.