---
name: coupling-detection
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
---

# 老代码耦合检测规则

## 检测时机
- 编码阶段尝试写单元测试时
- 编码阶段尝试修改老代码时

## 触发回退到架构设计的条件

### 无法单独测试
- 老代码使用静态方法/单例导致无法 mock
- 老代码直接 new 依赖对象，未使用依赖注入
- 老代码与框架深度绑定（如直接依赖 Request/Response 对象）

### 无法单独修改
- 修改一个函数需要同步修改 5 个以上关联文件
- 老代码存在循环依赖无法单独抽取
- 老代码的数据结构被多处硬编码引用

### 检测规则
- 尝试写单测 3 次仍无法 mock 隔离 → 触发回退
- 修改影响范围超过预期的 3 倍 → 触发回退
