8.9 KiB
8.9 KiB
Fonrey ADR 动态决策记录(Architecture & Requirement Decision Records)
目的:沉淀 Vibe Coding 过程中的技术决策与需求决策,避免跨会话后方案漂移。
适用范围:全项目(TECH_STACK / DATA_MODEL / PRD / TEST_CASES / 开发流程)。
维护原则:新增决策只追加,不覆盖历史;若决策被替代,必须新增 supersede 记录。
变更历史
| 日期 | 变更人 | 变更内容 |
|---|---|---|
| 2026-04-30 | Atlas | 初始化 ADR 动态决策记录;补录当日关键技术与需求决策 |
一、记录规范(必须遵守)
1.1 决策ID规则
- 格式:
ADR-YYYYMMDD-XXX - 例:
ADR-20260430-001
1.2 决策类型
TECH:技术决策(架构、接口、数据、测试、流程规范)REQ:需求决策(范围、术语、优先级、验收口径)
1.3 状态枚举
accepted:已生效superseded:已被替代(需指向新 ADR)deprecated:废弃(不再执行)
1.4 最小字段
每条 ADR 必须包含:
- 决策ID
- 日期
- 模块
- 类型(TECH/REQ)
- 状态
- 背景
- 决策内容
- 影响范围
- 关联文档
- 备注(可选)
二、按日期记录(主索引)
2026-04-30
ADR-20260430-001
- 类型:REQ
- 模块:测试治理(全局)
- 状态:accepted
- 背景:测试文档与沟通中存在“业务旅程/测试用例”术语混用,易导致执行偏差。
- 决策:全项目统一使用“测试用例”术语,不再以“业务旅程”作为执行口径。
- 影响范围:
TECH_STACK/测试规范.md、TEST_CASES/* - 关联文档:
TECH_STACK/测试规范.md
ADR-20260430-002
- 类型:TECH
- 模块:测试治理(全局)
- 状态:accepted
- 背景:多模块并行时测试编号易重复、不可追溯。
- 决策:采用全局唯一测试用例编号:
TC-FON-XXXXXX,并建立注册表,禁止复用废弃编号。 - 影响范围:所有测试用例文档与测试报告系统
- 关联文档:
TEST_CASES/TEST_CASE_ID_SPEC.mdTEST_CASES/TEST_CASE_REGISTRY.md
ADR-20260430-003
- 类型:TECH
- 模块:测试执行与报告
- 状态:accepted
- 背景:失败定位粒度不足,无法快速定位到具体步骤。
- 决策:测试报告必须支持
test_case_id + step_id级追踪,并记录expected/actual/error_message与证据路径。 - 影响范围:CI 报告、自动化测试框架
- 关联文档:
TECH_STACK/测试规范.md
ADR-20260430-004
- 类型:REQ
- 模块:登录管理
- 状态:accepted
- 背景:登录 PRD v2.0 与技术方案存在接口命名漂移。
- 决策:登录模块接口路径以 PRD v2.0 为唯一权威,技术方案与测试用例全部对齐 PRD 路径。
- 影响范围:登录模块 API 设计、自动化测试调用路径
- 关联文档:
PRD/登录管理/用户登录管理模块PRD.mdTECH_STACK/登录管理技术方案.mdTEST_CASES/TEST_CASES_LOGIN_MODULE.md
ADR-20260430-005
- 类型:REQ
- 模块:登录管理
- 状态:accepted
- 背景:Story 边界存在历史遗留混淆。
- 决策:登录模块范围冻结为:短信验证码登录为 MVP 正式能力;“找回用户名”废弃;微信扫码保留为预留。
- 影响范围:实现范围、测试覆盖边界
- 关联文档:
PRD/登录管理/用户登录管理模块PRD.mdTECH_STACK/登录管理技术方案.md
ADR-20260430-006
- 类型:TECH
- 模块:客户端发布管理
- 状态:accepted
- 背景:发布模块缺少可执行技术方案,无法指导实现与测试。
- 决策:新增独立技术方案文档,明确 Electron 壳层边界、EV 签名、Heartbeat、自动更新、完整性校验、R2 版本管理、官网分发、便携版策略。
- 影响范围:
apps/release设计与落地 - 关联文档:
TECH_STACK/客户端发布管理技术方案.mdPRD/发布管理/客户端发布管理模块PRD.md
ADR-20260430-007
- 类型:TECH
- 模块:客户端发布管理 / 数据模型
- 状态:accepted
- 背景:统计口径需支撑跨租户版本分布与活跃安装数。
- 决策:以
public.client_heartbeats作为心跳事实表,使用(tenant_id, device_id)为 Upsert 锚点,活跃定义为最近 24h。 - 影响范围:统计接口、看板与聚合查询
- 关联文档:
DATA_MODEL/DATA_MODEL_PUBLIC.md
ADR-20260430-008
- 类型:TECH
- 模块:客户端发布管理 / 安全
- 状态:accepted
- 背景:下载链路存在篡改与损坏风险。
- 决策:客户端更新包必须进行 SHA256 完整性校验,校验失败禁止安装并保留当前版本可用。
- 影响范围:客户端更新器、发布接口响应字段
- 关联文档:
TECH_STACK/客户端发布管理技术方案.mdPRD/发布管理/客户端发布管理模块PRD.md
ADR-20260430-009
- 类型:TECH
- 模块:客户端发布管理 / API
- 状态:accepted
- 背景:历史文档存在
/api/client/updates/*与/api/release/updates/*双口径。 - 决策:发布模块统一采用
/api/release/...命名空间。 - 影响范围:服务端路由、客户端调用、测试用例
- 关联文档:
PRD/发布管理/客户端发布管理模块PRD.mdTECH_STACK/TECH_STACK.mdTECH_STACK/客户端发布管理技术方案.md
ADR-20260430-010
- 类型:TECH
- 模块:文档治理(全局)
- 状态:accepted
- 背景:多目录文档缺少统一变更追溯入口。
- 决策:
TECH_STACK / DATA_MODEL / TEST_CASES下文档统一添加“变更历史”章节,并规范位置:头部元信息之后、正文主章节(## 一/## 1)之前。 - 影响范围:全量技术文档与测试文档
- 关联文档:
TECH_STACK/*.mdDATA_MODEL/*.mdTEST_CASES/*.md
三、按模块分类记录(视图索引)
3.1 测试治理(全局)
ADR-20260430-001:术语统一为“测试用例”(REQ)ADR-20260430-002:全局唯一测试编号机制(TECH)ADR-20260430-003:报告粒度到 step_id(TECH)
3.2 登录管理
ADR-20260430-004:接口路径以 PRD 为准(REQ)ADR-20260430-005:MVP 范围冻结(REQ)
3.3 客户端发布管理
ADR-20260430-006:新增独立技术方案(TECH)ADR-20260430-008:SHA256 完整性校验强制(TECH)ADR-20260430-009:API 命名空间统一/api/release/...(TECH)
3.4 数据模型(public schema)
ADR-20260430-007:client_heartbeatsUpsert + 24h 活跃口径(TECH)
3.5 文档治理(全局)
ADR-20260430-010:变更历史章节统一规则(TECH)
四、历史记录(Append-Only Log)
说明:本节为机器可检索的历史流水,不删改旧记录。
| ADR ID | 日期 | 模块 | 类型 | 状态 | 摘要 | 关联 |
|---|---|---|---|---|---|---|
| ADR-20260430-001 | 2026-04-30 | 测试治理 | REQ | accepted | 术语统一为“测试用例” | TECH_STACK/测试规范.md |
| ADR-20260430-002 | 2026-04-30 | 测试治理 | TECH | accepted | 测试编号全局唯一 TC-FON-XXXXXX |
TEST_CASES/TEST_CASE_ID_SPEC.md |
| ADR-20260430-003 | 2026-04-30 | 测试执行 | TECH | accepted | 报告必须定位到 test_case_id+step_id |
TECH_STACK/测试规范.md |
| ADR-20260430-004 | 2026-04-30 | 登录管理 | REQ | accepted | 登录接口路径全部按 PRD v2.0 | TECH_STACK/登录管理技术方案.md |
| ADR-20260430-005 | 2026-04-30 | 登录管理 | REQ | accepted | 登录模块范围冻结(含废弃/预留) | PRD/登录管理/用户登录管理模块PRD.md |
| ADR-20260430-006 | 2026-04-30 | 客户端发布 | TECH | accepted | 新建独立技术方案文档 | TECH_STACK/客户端发布管理技术方案.md |
| ADR-20260430-007 | 2026-04-30 | 数据模型 | TECH | accepted | client_heartbeats Upsert + 24h 活跃 |
DATA_MODEL/DATA_MODEL_PUBLIC.md |
| ADR-20260430-008 | 2026-04-30 | 客户端发布安全 | TECH | accepted | SHA256 校验失败禁止安装 | TECH_STACK/客户端发布管理技术方案.md |
| ADR-20260430-009 | 2026-04-30 | 客户端发布 API | TECH | accepted | 统一 /api/release/... 路径 |
TECH_STACK/TECH_STACK.md |
| ADR-20260430-010 | 2026-04-30 | 文档治理 | TECH | accepted | 变更历史章节位置统一规范 | TECH_STACK/*.md DATA_MODEL/*.md TEST_CASES/*.md |
五、后续维护约定
- 每当接受新技术或需求决策,当天必须新增 ADR 条目。
- 若新决策替代旧决策,在新 ADR 中写明
supersedes: ADR-xxxx,并将旧条目标记superseded。 - PRD / TECH_STACK / DATA_MODEL / TEST_CASES 发生关键口径变化时,必须同步更新本文件。
- 本文件是跨 Session 的决策权威输入之一,和 PRD 一起喂给 Agent。