# ADR 模板 (Architecture Decision Record)

## 用途

此模板用于记录重大架构决策。每个 ADR 应专注于**单一决策**。

---

## 模板

```markdown
# ADR-[编号]: [决策标题]

## 状态
[Proposed | Accepted | Deprecated | Superseded by ADR-XXX]

## 日期
[YYYY-MM-DD]

## 背景
[描述驱动此决策的问题或情况]
- 项目需求是什么？
- 有什么约束？
- 利益相关者的期望是什么？

## 决策驱动因素
[列出影响决策的关键因素]
- 因素 1: ...
- 因素 2: ...

## 候选方案

### 方案 A: [名称]
- **描述**: [简要描述]
- **优点**: 
  - ...
- **缺点**:
  - ...

### 方案 B: [名称]
[同上格式]

## 决策
[明确陈述选择的方案及核心理由]

## 后果

### 正面
- ...

### 负面
- ...

### 需要的后续行动
- ...

## 参考资料
- [链接或引用]

## 影响范围
<!--  记录哪些系统引用了本 ADR，便于修改时追踪影响 -->

本 ADR 被以下系统引用:
- [{系统名称}](../SYSTEM_DESIGN/{系统名称}.md) - §8 Trade-offs
- [待补充]

> **维护说明**: 当 SYSTEM_DESIGN 在 §8 引用本 ADR 时，应在此处添加引用记录。
```

---

## 最佳实践

1. **保持简洁**: ADR 应在几分钟内可读完
2. **聚焦单一决策**: 复杂决策拆分为多个 ADR
3. **不可变**: 一旦接受，视为历史记录；如需更改，创建新 ADR
4. **版本控制**: 将 ADR 与代码一起存储在 Git 中
5. **团队协作**: 在最终确定前收集团队反馈
6. **追踪影响**: 在"影响范围"章节记录引用该 ADR 的系统，修改时能立即知道影响范围

