2.4 KiB
2.4 KiB
lesson_id, lesson_state, owner, reviewer, last_reviewed, reviewed_revision, source_issues, keywords
| lesson_id | lesson_state | owner | reviewer | last_reviewed | reviewed_revision | source_issues | keywords | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| LESSON-20260923-content-hash | validated | Codex | Codex (source review) | 2026-09-23 | 2fdb6e548e |
|
|
文本规范化必须保持语义并维护账本与文件一致性
触发:修改 Markdown 规范化、哈希、版本 bootstrap、文件投影、正文加载或刷新缓存时。
机制与来源:问题主记录。去掉行尾双空格破坏硬换行语义;只更新账本哈希使原文件读取失配。统一报 404 和无效轮询更新让数据冲突难以诊断并反复呈现。
开发检查:
- 对规范化定义允许变化和必须保留的语义,保留硬换行等差异样例;哈希一致性依赖相同语义和规范化契约。
- 追踪快照、记录哈希与文件投影的写入顺序和失败恢复。旧文档首次 bootstrap 与新文档创建分别覆盖,并发 content/revision 请求和刷新后读取需按实际因果链验证。
- 数据修复先按授权保全原文件及旧版本,显式记录修复来源;不能通过静默覆盖或跳过校验来隐藏不一致。
- 将不存在、完整性冲突和临时失败按协议区分。检查无变化轮询是否重复触发内容加载;失败反馈应可定位。
已有防护:黄金样例 含硬换行保持及 doccontent 封装一致性;历史真实 UI 报告 覆盖旧文档、刷新和重启。2026-09-23 只核对源码与报告,未重跑;测试存在不等于在未来变更中已执行。
边界:哈希不同不自动说明数据丢失,也不自动授权重写。不同文件格式的空白语义不同;不得把 Markdown 规则机械用于其他格式。当前制品和旧数据迁移需要各自证据,新项目 PASS 不代替旧数据验收。
未完成防护:没有全仓扫描或新 CI 门禁;未来相关修改按验证契约运行适用用例并记录结果。
修订:2026-09-23 从历史问题提炼,核对当前 canonicalize 委托与黄金样例;规范化/投影/缓存契约改变时再审。