Merge-Generation
Need User FeedbackWenn divergierte Branches zusammengeführt werden müssen, führt REAP einen spezialisierten 6-Phasen-Lebenszyklus namens Merge-Generation aus — getrennt vom normalen Generationslebenszyklus. Das Kernprinzip: zuerst das Genome ausrichten, dann den Quellcode zusammenführen.
Warum unterscheidet sich die Merge-Generation von einem regulären Git-Merge?
Ein regulärer Git-Merge löst nur Quellcode-Konflikte auf. Aber wenn sich zwei Branches unabhängig weiterentwickeln — jeweils mit eigenen Generationen, Genome-Änderungen und Designentscheidungen — reicht es nicht aus, nur den Quellcode zusammenzuführen. Das Genome (Architekturprinzipien, Konventionen, Einschränkungen, Geschäftsregeln) kann ebenfalls divergiert sein. Die Merge-Generation fügt drei kritische Schritte vor dem Quellcode-Merge hinzu: Erkennung der Genome-Divergenz, Mating (Auflösung von Genome-Konflikten) und Überprüfung der Genome-Quellcode-Konsistenz nach dem Merge. Dies stellt sicher, dass die zusammengeführte Codebasis nicht nur kompilierbar, sondern auch designkonsistent ist.
Quellcode-Konflikte → lösen → committen. Designkonsistenz wird nicht geprüft. Semantische Konflikte bleiben unerkannt.
Genome zuerst ausrichten → Quellcode-Merge durch Genome geleitet → Genome-Quellcode-Konsistenz überprüfen → validieren → committen. Unsichtbare semantische Konflikte werden erkannt.
Warum die Genome-Ausrichtung zuerst kommt
Die Auflösung von Quellcode-Konflikten garantiert nicht die Abwesenheit semantischer Konflikte. Zwei Code-Teile können sauber zusammengeführt werden — überhaupt keine Git-Konflikte — und dennoch in Absicht, Architektur oder Geschäftslogik widersprechen. Nur Genome-basiertes Denken kann diese unsichtbaren Konflikte erkennen: Folgt der zusammengeführte Code noch den Architekturprinzipien? Sind die Konventionen konsistent? Stimmen die Geschäftsregeln überein? Deshalb richtet REAP das Genome aus, bevor der Quellcode angefasst wird. Sobald das Genome feststeht, wird es zum maßgeblichen Leitfaden für die Lösung von Quellcode-Konflikten — nicht nur syntaktisch, sondern semantisch.
Phasenreihenfolge
| Phase | Was passiert | Artefakt |
|---|---|---|
| Detect | Den Zielbranch über Git-Refs scannen. Den gemeinsamen Vorfahren mittels DAG-BFS finden. Genome-Diffs extrahieren. Konflikte als WRITE-WRITE oder CROSS-FILE klassifizieren. | 01-detect.md |
| Mate | Alle Genome-Konflikte dem Menschen präsentieren. Für WRITE-WRITE: A, B wählen oder manuell zusammenführen. Für CROSS-FILE: logische Kompatibilität prüfen. Das Genome muss vollständig aufgelöst sein, bevor es weitergeht. | 02-mate.md |
| Merge | git merge --no-commit mit dem Zielbranch ausführen. Quellcode-Konflikte geleitet vom finalisierten Genome auflösen. Auf semantische Konflikte prüfen — Code der kompiliert, aber dem Genome widerspricht. | 03-merge.md |
| Reconcile | Genome-Quellcode-Konsistenz nach dem Merge überprüfen. KI vergleicht Genome und Quellcode. Benutzer bestätigt gefundene Inkonsistenzen. Bei Problemen Regression zu Merge oder Mate. | 04-reconcile.md |
| Validation | Alle mechanischen Testbefehle ausführen (Test, Lint, Build, Typprüfung). Bei Fehlschlägen Regression zu Merge oder Mate. | 05-validation.md |
| Completion | Das zusammengeführte Ergebnis committen. Den Merge in meta.yml mit type: merge und beiden Eltern aufzeichnen. In Lineage archivieren. | 06-completion.md |
Konflikttypen
| Typ | Beschreibung | Auflösung |
|---|---|---|
| WRITE-WRITE | Dieselbe Genome-Datei auf beiden Branches geändert | Mensch entscheidet: A behalten, B behalten oder zusammenführen |
| CROSS-FILE | Verschiedene Genome-Dateien geändert, aber beide Branches haben Genome geändert | Mensch prüft auf logische Kompatibilität |
| Quellcode-Konflikt | Git-Merge-Konflikt im Quellcode | Geleitet vom finalisierten Genome aufgelöst |
| Semantischer Konflikt | Code wird sauber zusammengeführt, widerspricht aber dem Genome (Architektur, Konventionen, Geschäftsregeln) | Erkannt in der Reconcile-Phase — KI vergleicht Genome und Quellcode, Benutzer bestätigt Auflösung |
| Kein Konflikt | Keine Genome- oder Quellcode-Konflikte | Läuft automatisch weiter |
Merge-Regression
Validation- oder Reconcile-Fehlschläge können zu Merge oder Mate zurückkehren. Merge kann zu Mate zurückkehren, wenn ein Genome-Problem entdeckt wird. Regressionsregeln folgen demselben Muster wie bei normalen Generationen — Grund wird in Timeline und Artefakt festgehalten.
