SuperAPI AI 工具集

architecture-decision-records

编程与开发

查看项目

更新于 10-16 02:23

技能介绍

用途

Architecture Decision Records(ADR)用于记录重要的技术决策,让未来的自己或团队成员理解当初为何做出某项选择。当一项决策难以逆转、影响系统多个部分、涉及多个有效方案之间的权衡,或者六个月后会被人质疑时,就应当撰写 ADR。典型例子包括:选择数据库、采用某个框架、更改认证策略、重构 API、添加构建工具。

主要能力

该技能提供了一套结构化的 ADR 模板与工作流程,帮助团队规范地记录决策。模板包含以下部分:

  • 标题与编号:如 # ADR-001: Use PostgreSQL for primary database
  • 状态(Status):Accepted(已接受)、Proposed(提议中)、Deprecated(已弃用)、Superseded by ADR-XXX(被某 ADR 取代)
  • 日期(Date):如 2026-04-10
  • 背景(Context):描述需要决策的问题或情况,包括约束条件、需求和影响因素
  • 备选方案(Options Considered):列出至少 2-3 个方案,并分别说明优缺点
  • 决策(Decision):说明最终选择了哪个方案以及理由
  • 后果(Consequences):记录该决策带来的影响和需要接受的限制

使用方式

工作流程如下:

  1. 确定正在做出的决策
  2. 研究备选方案(至少 2-3 个替代方案)
  3. 使用模板撰写 ADR
  4. 与团队评审(通过 PR 或讨论)
  5. 合并为已接受状态
  6. 在相关代码注释中引用,例如 // See ADR-001

文件存放在 docs/decisions/(或 adr/)目录下,采用顺序编号命名,例如:

docs/decisions/
├── 001-use-postgresql.md
├── 002-adopt-trpc-over-rest.md
├── 003-switch-to-pnpm.md
└── template.md

适用场景

适用于需要记录技术选型与架构变更的软件团队,尤其是决策影响面广、难以回退、需要长期追溯理由的情况。

限制与注意事项

  • ADR 应保持简短,最多 1-2 页
  • 使用现在时撰写(如 "We choose X" 而非 "We chose X")
  • 如果决策时忘记撰写,事后补写也是可以的
  • 被取代的 ADR 应链接到替代它的新 ADR,而不是删除
  • ADR 不是设计文档,它只记录决策本身,而非完整设计

暂未提供的信息

关于该技能的具体安装命令、支持的平台、是否收费及价格等信息,资料中暂未提供。