diff --git a/prompts/leave-only-one-frwddecl-folder.prompt.md b/prompts/leave-only-one-frwddecl-folder.prompt.md new file mode 100644 index 000000000..a6fe3a11e --- /dev/null +++ b/prompts/leave-only-one-frwddecl-folder.prompt.md @@ -0,0 +1,137 @@ +Hier ist der **angepasste Prompt** mit beiden Anweisungen: + +```text +Setze die Qt5->Qt6-Migration fort und bearbeite strikt nur die Forward-Declaration-Konsolidierung im Qt6-Baum. + +Spezielle Aufgabe: +Es existieren zwei Verzeichnisse mit identischem Inhalt: +- a) /workspace/forward-declarations +- b) /workspace/qt-migration-legatus/qt6-after/qt6-migrated-legatus/forward-declarations + +Aktuell werden trotz identischem Inhalt noch immer beide benötigt. + +Ziel: +- bereinige alle direkt betroffenen CMake-Skripte, `#include`-Stellen und Tool-/Codegenerator-Aufrufe so, dass **nur noch b)** benötigt wird: + - /workspace/qt-migration-legatus/qt6-after/qt6-migrated-legatus/forward-declarations +- erst wenn dieser Zustand sicher erreicht ist, lösche a): + - /workspace/forward-declarations +- belasse danach ausschließlich b) + +Wichtiger Container-Kontext: +- `/workspace` ist ein **Mount im Validierungs-Docker-Container** +- der maßgebliche Validierungsweg dafür ist: + - `/workspace/qt-migration-legatus/qt6-after/qt6-migrated-legatus/docker_build.sh` +- berücksichtige deshalb, dass alle Pfade im Validierungskontext containerbezogen unter `/workspace` aufgelöst werden müssen + +Zusätzliche Pflicht: +- passe **auch den Migrations-Docker-Container** in + - `/workspace/app/Dockerfile` + minimal mit an, soweit es für diese Umstellung nötig ist, damit die Migration **nicht nur validierbar ist, sondern anschließend auch weiterlaufen kann** +- behandle also: + - `/workspace/app/Dockerfile` als Migrationscontainer + - `/workspace/qt-migration-legatus/qt6-after/qt6-migrated-legatus/docker_build.sh` als Validierungscontainer nach einem Migrationsschritt + +Harte Regeln: +- nur diese Konsolidierungsaufgabe bearbeiten +- keine Refactorings +- keine opportunistischen Fixes +- keine fachlogischen Änderungen +- keine Änderungen im Legacy-Tree +- keine neuen Stubs, Wrapper, Redirect-Header oder Kopien erzeugen +- keine parallele Alt-/Neu-Struktur beibehalten +- keine Scheinlösung über zusätzliche Include-Pfade, die beide Verzeichnisse weiter unterstützen +- keine Workarounds, die a) indirekt weiter voraussetzen + +Pflichtanalyse: +- prüfe, an welchen Stellen a) noch direkt oder indirekt referenziert wird +- prüfe: + - `CMakeLists.txt` + - cmake-Include-Dateien + - `target_include_directories(...)` + - `include_directories(...)` + - `#include`-Pfade + - Custom Commands + - Generator-/Tool-Aufrufe + - Arbeitsverzeichnisse (`WORKING_DIRECTORY`) + - Skripte mit hart codierten Pfaden + - Docker-bezogene Aufrufe oder Mount-Annahmen +- identifiziere auch implizite Abhängigkeiten, z. B. falsche relative Pfade oder Generatoren, die im Workspace-Root nach `forward-declarations` suchen + +Pflichtumsetzung: +- ändere alle direkt betroffenen Pfade strikt auf b): + - /workspace/qt-migration-legatus/qt6-after/qt6-migrated-legatus/forward-declarations +- passe Includes minimal so an, dass nur noch b) verwendet wird +- passe CMake-Pfade minimal so an, dass nur noch b) eingebunden wird +- passe Tool-/Codegenerator-Aufrufe minimal so an, dass nur noch b) als Input-/Include-/Suchpfad verwendet wird +- passe bei Bedarf auch Mount-/Container-bezogene Pfadannahmen in den betroffenen Docker-Kontexten minimal an +- stelle sicher, dass keine Build- oder Migrationsstelle mehr a) voraussetzt + +Löschregel: +- lösche a) erst dann, wenn nachweislich gilt, dass Configure, Build und ggf. Codegenerierung ohne a) funktionieren +- nicht vorher +- nach erfolgreicher Umstellung darf nur noch b) verbleiben + +Strikte CMake-/Pfadregeln: +- bevorzuge ursächliche Korrekturen +- bevorzuge `target_include_directories(...)` gegenüber globalen Sammellösungen, sofern minimal möglich +- keine künstlichen Fallbacks +- keine Pfadverdopplungen +- keine zusätzliche Kompatibilitätsschicht für a) +- keine neuen globalen Variablen, wenn eine lokale Korrektur ausreicht + +Tool-/Codegenerator-Regeln: +- prüfe explizit, ob Generatoren oder Hilfstools a) als Include-, Input-, Template- oder Output-Bezug verwenden +- korrigiere diese Aufrufe an der Ursache +- keine Fake-Inputs +- keine stillschweigende Rückfallebene auf a) + +Docker-Regeln: +- Validierungscontainer: + - `/workspace/qt-migration-legatus/qt6-after/qt6-migrated-legatus/docker_build.sh` +- Migrationscontainer: + - `/workspace/app/Dockerfile` +- beide Kontexte müssen nach der Änderung konsistent mit nur noch b) arbeiten +- ändere diese Container-Kontexte nur minimal und nur soweit nötig, damit: + - die Validierung funktioniert + - die eigentliche Migration danach weiterlaufen kann + +Validierung: +- nutze `/workspace/qt-migration-legatus/qt6-after/qt6-migrated-legatus/docker_build.sh` als primären Validierungsweg +- validiere mit mindestens: + 1. Configure + 2. Build + 3. Nachweis, dass a) nicht mehr benötigt wird +- prüfe zusätzlich, dass notwendige Anpassungen im Migrationscontainer unter `/workspace/app/Dockerfile` konsistent sind +- wenn sinnvoll: + - a) vor dem finalen Validierungslauf entfernen oder unzugänglich machen, um zu beweisen, dass nur b) benötigt wird + +Erfolgskriterien: +- alle relevanten CMake-Skripte, Includes und Tool-/Codegenerator-Aufrufe verwenden nur noch b) +- Validierungscontainer und Migrationscontainer sind konsistent auf diese Struktur angepasst +- a) wird nirgends mehr benötigt +- a) wurde anschließend gelöscht +- nur b) bleibt bestehen: + - /workspace/qt-migration-legatus/qt6-after/qt6-migrated-legatus/forward-declarations +- Build/Configure/ggf. Codegenerierung funktionieren ohne a) +- die Migration kann danach weiterlaufen +- keine Wrapper, Kopien oder Parallelstrukturen + +Wenn nicht vollständig lösbar: +- nichts vortäuschen +- a) nicht löschen, falls noch technische Abhängigkeiten bestehen +- als teilweise validiert oder blockiert melden +- exakte Restabhängigkeit auf a) benennen +- angeben, ob der Blocker im Validierungscontainer, im Migrationscontainer oder im Projekt selbst liegt + +Abschlussbericht nur kurz: +- validiert, teilweise validiert oder blockiert +- geänderte Dateien +- geänderte CMake-Dateien +- geänderte Include-Stellen +- geänderte Tool-/Generator-Aufrufe +- Anpassungen an `/workspace/app/Dockerfile` +- Anpassungen an `/workspace/qt-migration-legatus/qt6-after/qt6-migrated-legatus/docker_build.sh` +- ob a) gelöscht wurde +- exakte Docker-Kommandos +- verbleibende Blocker oder Risiken +```