跳转至

设计决策记录(ADR)

ADR 保存设计取舍的背景、备选方案与后果。当前实现合同由对应子系统文章维护;历史决定保留当时的接口、版本和证据范围,不能仅凭 accepted 状态推断所有后续平台与入口已经交付。

编号 决定 保留的边界或代价 记录状态
0001 计划与实际强制证据分开 计划最高到 Planned;消费者还需检查执行观察 实现回填
0002 捕获与回放独立 执行可独立使用;模型捕获与原生轨迹分别收集 实现回填
0003 safe 保留显式执行器选择 缺少控制时拒绝,平台前置条件仍需满足 实现回填
0004 人工批准语义承诺 测试结果与产品承诺分别审核 现有贡献规则回填
0005 单一 Rust VM crate 与 trait API 后端私有,统一声明不承诺跨架构恢复 实现回填
0006 快照保存 stage,复用不可变基底 基底需要验证与 pin;历史独立 CLI profile 不等于当前 Job 接口 accepted;沿用原记录的 2026-10-04 状态
0007 Host FUSE 与 virtio-fs 共用文件服务 共享文件语义,协议状态与并发仍由适配器负责 实现回填
0008 Host 与 Guest 控制权限分离 两套凭据与端点;Host 内部协议要求精确兼容 实现回填

“实现回填”说明可以从源码或现有开发规则核对选择,不表示新获得维护者批准。0006 的 accepted 状态沿用其独立记录;其中旧 CLI 与测量仍属于历史制品,当前行为以环境快照和Job 检查点为准。

如何记录下一项决策

每项决策使用唯一四位编号和独立的 NNNN-短标题.md 文件,写清背景、备选方案、选择、后果、状态和源码/证据范围。索引只维护选择与影响,不复制正文;同一主题后续改变时,记录替代关系并链接原决定。

状态区分 proposed、accepted、superseded、rejected 和实现回填。代码合入与人工批准分别核对。改变 crate 边界时更新迁移状态;改变记录格式或提交顺序时同步更新版本矩阵与失败语义,使兼容策略和重试条件能够一起评审。