Guide
Lineage
Lineage is the archive of completed generations. Every generation that completes its lifecycle is preserved here with full artifacts and DAG metadata.
Structure
Each completed generation creates a directory with artifacts and metadata:
text
.reap/lineage/
├── gen-042-a3f8c2-fix-login-bug/ # Full generation (directory)
│ ├── meta.yml # DAG metadata (id, parents, genomeHash)
│ ├── 01-learning.md
│ ├── 02-planning.md
│ ├── 03-implementation.md
│ ├── 04-validation.md
│ └── 05-completion.md
├── gen-030-b7e1f2.md # Level 1 compressed (single file)
└── epoch.md # Level 2 compressed (hash chain)DAG (Directed Acyclic Graph)
Each generation records its parents in meta.yml, forming a DAG. This enables distributed workflows where multiple machines can work independently and merge later.
Compression
Compression runs during the Completion stage to manage lineage size.
| Level | Input | Output | Trigger | Protection |
|---|---|---|---|---|
| Level 1 | Generation folder | gen-XXX-{hash}.md (40 lines) | > 5,000 lines + 5+ generations | Recent 3 + DAG leaf nodes |
| Level 2 | 100+ Level 1 files | Single epoch.md | Level 1 files > 100 | Recent 9 + fork points |
DAG preservation: Level 1 retains metadata in frontmatter. Level 2 epoch.md stores a generations hash chain. Fork guard: all local/remote branches are scanned — fork points are protected. Epoch-compressed generations cannot be used as merge bases.
