用途
Data Integrity 用于处理各类持久化状态的写入与校验,适用对象包括清单文件(manifests)、数据库、JSON/YAML/TOML 配置、缓存、索引、存档文件(save files)、生成的报告,以及其他需要落盘保存的状态。其目标是在写入过程中保证数据的正确性、完整性与可恢复性。
主要能力
该技能围绕持久化状态提出了一组核心约束:
- 在变更之前先解析并校验输入。
- 写入时先写到同级的临时文件,在支持的情况下使用原子替换(atomic replace)。
- 在替换内容被确认正确之前,保留原始文件。
- 写入完成后重新打开结果,并依据 schema 或不变量(invariants)进行校验。
- 对于多文件状态,定义写入顺序或事务标记,使中断不会留下看似可信的半更新状态。
- 对于清单与校验和,基于最终字节生成,并逐项验证每个条目。
- 对于缓存,使损坏可恢复,通过重建而非传播坏数据。
使用方式
该技能以规则与契约的形式给出,核心规则为:持久化状态需要经过验证的序列化、安全写入以及写入后校验。使用时应遵循其契约中的步骤:先校验输入,再安全写入,最后重新打开并校验结果。对于多文件场景,需要额外定义顺序或事务标记。对于清单和校验和,需要从最终字节生成并逐项验证。对于缓存,需要设计为可重建。
适用场景
适用于任何需要将状态持久化到磁盘或存储介质的开发场景,尤其是涉及配置文件、数据库记录、序列化数据、缓存、索引、存档和生成报告的写入操作。
限制与注意事项
该技能明确指出,不能将“write() 已返回”等同于持久化正确。需要考虑的失败情形包括:磁盘写满、进程中断、编码错误、重复键、部分 JSON、缓存过期以及并发写入。资料中未提供具体的安装命令、代码示例、平台支持范围或收费信息。