Lineage
Lineage ist das Archiv abgeschlossener Generationen. Jede Generation, die ihren Lebenszyklus abschließt, wird hier mit vollständigen Artefakten und DAG-Metadaten aufbewahrt.
Struktur
Jede abgeschlossene Generation erstellt ein Verzeichnis mit Artefakten und Metadaten:
.reap/lineage/
├── gen-042-a3f8c2-fix-login-bug/ # Vollständige Generation (Verzeichnis)
│ ├── meta.yml # DAG-Metadaten (ID, Eltern, genomeHash)
│ ├── 01-learning.md
│ ├── 02-planning.md
│ ├── 03-implementation.md
│ ├── 04-validation.md
│ └── 05-completion.md
├── gen-030-b7e1f2.md # Level-1-komprimiert (einzelne Datei)
└── epoch.md # Level-2-komprimiert (Hash-Kette)DAG (Directed Acyclic Graph)
Jede Generation verzeichnet ihre Eltern in meta.yml und bildet einen DAG. Dies ermöglicht verteilte Workflows, bei denen mehrere Maschinen unabhängig arbeiten und später zusammenführen können.
Komprimierung
Komprimierung wird während der Completion-Phase ausgeführt, um die Lineage-Größe zu verwalten.
| Level | Eingabe | Ausgabe | Auslöser | Schutz |
|---|---|---|---|---|
| Level 1 | Generationsordner | gen-XXX-{hash}.md (40 Zeilen) | > 5.000 Zeilen + 5+ Generationen | Neueste 3 + DAG-Blattknoten |
| Level 2 | 100+ Level-1-Dateien | Einzelne epoch.md | Level-1-Dateien > 100 | Neueste 9 + Verzweigungspunkte |
DAG-Erhaltung: Level 1 behält Metadaten im Frontmatter. Level-2 epoch.md speichert eine Generations-Hash-Kette. Fork-Schutz: Alle lokalen/Remote-Branches werden gescannt — Verzweigungspunkte werden geschützt. Epoch-komprimierte Generationen können nicht als Merge-Basis verwendet werden.
