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.

LevelInputOutputTriggerProtection
Level 1Generation foldergen-XXX-{hash}.md (40 lines)> 5,000 lines + 5+ generationsRecent 3 + DAG leaf nodes
Level 2100+ Level 1 filesSingle epoch.mdLevel 1 files > 100Recent 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.