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