1.8 KiB
1.8 KiB
架构决策记录(ADR)
一份文件记一个决定。设计文档写"怎么落地",ADR 写"为什么这么定、放弃了什么"。
目录约定
| 项 | 约定 |
|---|---|
| 位置 | docs/adr/ |
| 命名 | NNNN-英文短标题.md,四位递增,从 0001 开始 |
| 粒度 | 一份文件只记一个决定;相关联的决定分文件写,互相引用 |
| 语言 | 文件名用英文短横线小写,正文用中文 |
| 评审 | 走 MR:有 diff、有讨论、有提交历史 |
不可更改原则
ADR 写完不再修改。要改结论就新写一份,并在两份里互相标注取代关系:
- 新 ADR 的
状态写已接受(取代 ADR-0002) - 旧 ADR 的
状态改为已取代(被 ADR-0007 取代)
这样任何时候都能回答"当初为什么这么定、后来为什么改"。
状态取值
| 状态 | 含义 |
|---|---|
| 提议 | 已写出,等待决策人签字 |
| 已接受 | 决策人签字,作为当前依据 |
| 已取代 | 被更新的 ADR 覆盖 |
| 已废弃 | 决定不再适用,且未被替代 |
谁写、谁定
任何人可以提议(状态 提议)。决策人在文件里签字后状态改为 已接受。签字栏留空表示还没定。
索引
| 编号 | 标题 | 状态 | 来源 |
|---|---|---|---|
| 0001 | 技术栈与仓库形态 | 已接受 | 任务表 A0.1、A0.2 |
| 0002 | 引擎与 Provider 部署形态 | 待写 | 任务表 A0.3(决策 D1) |
| 0003 | 数据作用域与权威数据源 | 待写 | 任务表 A0.4(决策 D2) |
| 0004 | 桌面端与本地能力边界 | 待写 | 任务表 A0.5(决策 D4) |
| 0005 | 迁移与切换策略 | 待写 | 任务表 A0.9(决策 D7) |
编号在写之前先在本表登记,避免多人并行时撞号。