가이드
Lineage
Lineage는 완료된 Generation의 아카이브입니다. 라이프사이클을 완료한 모든 Generation이 전체 산출물과 DAG 메타데이터와 함께 보존됩니다.
구조
완료된 각 Generation은 산출물과 메타데이터가 포함된 디렉토리를 생성합니다:
text
.reap/lineage/
├── gen-042-a3f8c2-fix-login-bug/ # 전체 Generation (디렉토리)
│ ├── meta.yml # DAG 메타데이터 (id, parents, genomeHash)
│ ├── 01-learning.md
│ ├── 02-planning.md
│ ├── 03-implementation.md
│ ├── 04-validation.md
│ └── 05-completion.md
├── gen-030-b7e1f2.md # Level 1 압축 (단일 파일)
└── epoch.md # Level 2 압축 (해시 체인)DAG (Directed Acyclic Graph)
각 Generation이 meta.yml에 부모를 기록하여 DAG를 형성합니다. 이를 통해 여러 머신이 독립적으로 작업하고 나중에 merge하는 분산 워크플로우가 가능합니다.
압축
lineage 크기를 관리하기 위해 Completion 단계에서 압축이 실행됩니다.
| 레벨 | 입력 | 출력 | 트리거 | 보호 |
|---|---|---|---|---|
| Level 1 | Generation 폴더 | gen-XXX-{hash}.md (40줄) | > 5,000줄 + 5개 이상 Generation | 최근 3개 + DAG 리프 노드 |
| Level 2 | 100+ Level 1 파일 | 단일 epoch.md | Level 1 파일 > 100 | 최근 9개 + 포크 포인트 |
DAG 보존: Level 1은 frontmatter에 메타데이터를 유지합니다. Level 2 epoch.md는 generation 해시 체인을 저장합니다. 포크 가드: 모든 로컬/원격 브랜치가 스캔됩니다 — 포크 포인트가 보호됩니다. Epoch 압축된 Generation은 merge base로 사용할 수 없습니다.
