Appearance
漂移检测
是什么
漂移检测用于发现代码和设计之间的不一致——文档说的是一套,代码做的是另一套。
这种情况在开发过程中很常见:文件被重命名了、函数被移走了、设计中途改了但文档没跟上。漂移检测就是帮你在关键节点发现这些偏差,而不是等到用户报错或集成失败时才发现。
为什么需要它
设计和实现不会永远同步。如果没有检测机制,不一致会逐渐积累,最终变成"没人知道文档和代码哪个是对的"。
漂移检测让这些不一致在可控制的节点被发现,问题还小的时候就处理掉。
它是怎么工作的
漂移检测不是每次保存文件都触发,而是在关键检查点运行。整个流程分四步:
- 设计阶段建立基线:把设计文档中的关键文件、函数和约束记录下来,作为对照标准。
- 在里程碑节点检查:对照基线检查当前代码,看有没有偏离。
- 对发现的偏差分类:有些是确定性的小偏差(比如文件重命名),有些是模糊的需要人工判断。
- 自动修复或记录:确定性的偏差自动修复,模糊的记录下来等人工处理。
自动修复的范围
只有确定性很高的偏差才会自动修复,比如文件重命名、函数重命名这类改动。涉及语义变化的偏差不会自动处理——改不改、怎么改,需要人来判断。
可以通过配置控制是否允许自动修复:
json
{
"guardian": {
"auto_fix": true
}
}三层检测机制
| 层级 | 时机 | 做什么 |
|---|---|---|
| 实时守护 | AI 写代码的过程中 | 每次文件变更都比对设计基线,小偏差自动修复,大偏差记录待确认 |
| 质量门复查 | AI 说"做完了"的时候 | 全面检查所有改动是否偏离设计、是否违反已有约束 |
| 归档拦截 | 执行归档的时候 | 如果还有未解决的漂移问题,归档会被拦截 |
三层配合:实时守护在日常实施中默默监听,质量门在完成后做全面复查,归档拦截确保问题不会悄悄溜进历史。
与其他机制的关系
漂移检测和 契约扫描 配合:契约扫描告诉系统"应该遵守什么",漂移检测检查"现在是否仍然遵守"。
它和质量门各管各的:质量门关注"这次变更是否可以交付",漂移检测关注"设计和代码是否还一致"。