---
name: compatibility-check
type: review_rule
asset_kind: review_rule
routes:
  - code_change
  - analysis
primary_triggers:
  - 兼容性
  - 向后兼容
  - 接口兼容
scope: ['*']
system_scope: ['existing-system']
stages: ["*"]
lifecycle_status: active
owner_mechanism_id: mc-existing-system-review
---

# 向后兼容性检查规则

## 接口兼容性
- 老接口参数不得被删除
- 老接口参数类型不得变更（窄化转换）
- 老接口返回结构不得删除已有字段
- 新增字段必须有默认值
- 废弃接口必须标记 @Deprecated 并提供替代方案

## 数据库兼容性
- 老表不得删除列
- 老列类型变更必须兼容（拓宽可以，窄化不可以）
- 新增列必须有默认值或允许 NULL
- 数据迁移必须可回滚

## 行为兼容性
- 老逻辑的输出不能被新逻辑改变
- 新老逻辑可以共存时，通过开关切换
- 开关关闭时行为必须与老版本一致
