指南
Lineage
Lineage 是已完成代的归档。每个完成生命周期的代都会连同完整的产物和 DAG 元数据一起保存在这里。
结构
每个已完成的代创建一个包含产物和元数据的目录:
text
.reap/lineage/
├── gen-042-a3f8c2-fix-login-bug/ # 完整代(目录)
│ ├── 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(有向无环图)
每一代在 meta.yml 中记录其父代,形成 DAG。这使得分布式工作流成为可能,多台机器可以独立工作后再合并。
压缩
压缩在 Completion 阶段运行,用于管理 lineage 大小。
| 级别 | 输入 | 输出 | 触发条件 | 保护 |
|---|---|---|---|---|
| Level 1 | 代文件夹 | gen-XXX-{hash}.md(40 行) | > 5,000 行 + 5 代以上 | 最近 3 个 + DAG 叶节点 |
| Level 2 | 100+ Level 1 文件 | 单个 epoch.md | Level 1 文件 > 100 | 最近 9 个 + 分叉点 |
DAG 保留:Level 1 在 frontmatter 中保留元数据。Level 2 epoch.md 存储代哈希链。分叉保护:在 Level 2 压缩前扫描所有本地/远程分支——分叉点受保护。经过 epoch 压缩的代不能用作合并基础。
