aps-agent/docs/adr/README.md

53 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 架构决策记录(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) |
| [0006](./0006-engine-as-subprocess.md) | 引擎以长驻子进程运行 | 已接受 | 任务表 A3(决策 D10) |
| [0007](./0007-storage-and-consistency.md) | 数据存储选型与双形态一致规则 | 已接受 | 任务表 A0(决策 D11) |
| [0008](./0008-database-ownership-and-topology.md) | 数据库归属与实例拓扑 | 已接受 | 任务表 A0(决策 D13) |
| [0009](./0009-delivery-shape.md) | 交付形态:纯平台包 + APS 单独部署 | 已接受 | 任务表 A0(决策 D14) |
| [0010](./0010-aps-dev-shape-in-repo.md) | APS 开发期与本仓库同仓不同目录 | 已接受 | 任务表 B0 |
编号在写之前先在本表登记,避免多人并行时撞号。