# AP01 – Ist-Stand-Inventar und Delta-Analyse ## Ziel Den **tatsächlichen Ist-Zustand** der bestehenden Code-Basis vollständig erfassen und ein **Delta** zum M1-Soll dokumentieren, bevor irgendetwas umgebaut wird. Ohne dieses AP besteht das Risiko, dass spätere APs an der Realität vorbeiplanen. ## Voraussetzungen - keine (erstes AP) ## Scope IN - vollständige Dateiliste unter `src/main/java/` und `src/test/java/` mit Kurzbeschreibung jeder Klasse (ein Satz pro Klasse) - Auflistung aller externen Dependencies aus `pom.xml` inkl. Versionen - Identifikation aller Stellen, an denen Log4j2-Typen (`org.apache.logging.log4j.*`) direkt importiert werden - Identifikation aller Stellen, an denen Zeichensätze explizit gesetzt werden (Grep nach `StandardCharsets`, `Charset.forName`) - Identifikation aller `System.exit`- und Exit-Code-Konstanten - Delta-Tabelle: Ist-Paketstruktur vs. Soll-Paketstruktur aus `technik-und-architektur.md` - Delta-Tabelle: Ist-Exit-Codes vs. Soll-Exit-Codes (`0/1/2`) - Delta-Tabelle: vorhandene vs. fehlende Elemente für M1 (Befundmodell mit Spec-/Diagnose-Trennung, SLF4J-Fassade, Berichtdatei, Log-Datei, Suffix-Logik, Minimalbericht, ISO 8859-15 als Eingabe-Encoding) - Klassifikation jedes vorhandenen Pakets: **behalten und migrieren**, **behalten und anpassen**, **neu bauen**, **später verwenden (M3+)** ## Scope OUT - keinerlei Code-Änderungen - keinerlei `pom.xml`-Änderungen - keinerlei Datei-Verschiebungen - keine neuen Dateien außer dem Bericht selbst ## Schritte 1. Repo lokal auschecken, `mvn clean verify` laufen lassen, Ergebnis festhalten (grün/rot, Anzahl Tests, Warnungen) 2. `find src/main/java -name "*.java" | sort` und jede Datei mit ein bis zwei Sätzen kurz beschreiben 3. `find src/test/java -name "*.java" | sort` analog 4. `grep -rn "org.apache.logging.log4j" src/` — alle Fundstellen auflisten 5. `grep -rn "StandardCharsets\|Charset.forName" src/` — alle Fundstellen auflisten 6. `grep -rn "System.exit\|EXIT_CODE" src/` — alle Fundstellen auflisten 7. aktuelle Paketstruktur als Baum zeichnen 8. Delta-Tabellen gemäß Scope IN erstellen 9. Klassifikation pro Paket vornehmen 10. Abschlussbericht nach `templates/ap-bericht.md` schreiben ## Abnahmekriterien - Abschlussbericht `berichte/AP01-bericht.md` existiert und enthält: - vollständige Dateiliste (main + test) mit Kurzbeschreibung - Dependency-Liste - alle Grep-Fundstellen - Ist-vs-Soll-Paketstrukturbaum - Delta-Tabelle Exit-Codes - Delta-Tabelle fehlender M1-Elemente - Klassifikationstabelle pro Paket - `mvn clean verify` ist vor und nach diesem AP identisch (es wurde nichts geändert) - keine neuen Dateien im Repo außer dem Abschlussbericht ## Rest-Risiken und offene Punkte - Die Klassifikation „behalten" vs. „neu bauen" ist eine Einschätzung und kann in späteren APs revidiert werden müssen. Das ist okay, solange es dokumentiert wird. ## Bericht `docs/arbeitspakete/m1/berichte/AP01-bericht.md` nach `templates/ap-bericht.md`.