## 条件逻辑遗漏（Medium）

### 触发信号

在以下代码特征出现时启动此检测：
- switch/case 处理枚举类型、状态值或订单类型
- 同一业务概念在多处用 if/else 分支处理（如折扣计算散布在多个函数中）
- 包含默认值赋值的变量定义（`let x = null`、`const default = ...`）
- 配置驱动的条件分支（从配置文件/数据库读取规则后做分支判断）

### 判定流程

1. **识别条件分支集合**：`Read` 提取所有 switch/case 和关键 if/else 分支，标记每个分支处理的枚举值/状态值/场景
2. **对比枚举/状态定义**：`find_definition` 查看相关枚举或常量定义，与条件分支对比：
   - 是否存在未处理的枚举值/状态值
   - default 分支是否合理（是安全兜底还是静默忽略）
3. **交叉对比多处逻辑**：对同一业务概念的多处条件分支，`Grep` 搜索相关关键词，`Read` 对比：
   - 不同位置对同一状态/类型的处理是否一致
   - 是否存在排序规则、分页逻辑不一致导致业务矛盾
4. **验证默认值语义**：`find_references` 追踪变量的默认值，`Read` 检查默认值是否符合业务预期（如金额默认 null vs 0、角色默认 admin vs user）

### 证据构造

确认缺陷后，输出需包含：
- 枚举/状态定义（完整的合法值列表）
- 遗漏的分支（哪些值未被条件分支覆盖，含文件:行号）
- 逻辑矛盾点（多处处理同一概念时的不一致之处）
- 业务影响（遗漏场景或逻辑矛盾的后果）

### 排除

- 已有 exhaustive check 的 TypeScript switch（编译器级别保证）
- 已用策略模式/查表法替代的复杂条件（无需逐分支检查）
- 国际化/多语言的分支差异（设计如此）
