架构决策与文档
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/documentation-and-adrs-lr-fyx5。
技能介绍
要解决的问题
代码能告诉你"做了什么",但很少说明"为什么这么做"。一次选型的权衡、一套数据模型背后的妥协、某个公共接口被否决的历史,往往只留在口口相传里。后果很具体:新人或智能体接手时只能靠猜;同一个问题被反复解释;半年后没人记得当初为什么拒绝某个方案,于是它又被重新搬回来。
技能如何工作
核心思路是记录决策,而不是复述代码。 该技能围绕 ADR(Architecture Decision Record,架构决策记录)展开,把一次重大技术决策的上下文、约束和被考虑过的替代方案固化成文档。
触发时机包括:
- 在多个竞争方案之间做选型(框架、库、构建工具、托管平台)
- 设计数据模型或数据库 schema
- 确定认证策略与 API 架构(REST vs GraphQL vs tRPC 这类决策)
- 发布改变用户行为的 feature
- 需要反复向别人解释同一件事的时候
关键步骤:
- 先找现有约定。 创建 ADR 前先检查仓库里是否已有
docs/adr/、.adr-dir、MADR 布局或 adr-tools 配置。已有约定优先于默认规则。 - 沿用格式。 匹配现有目录位置、文件扩展名和标记语言(Markdown 或 reStructuredText)。
- 续接编号。 按已有序列继续命名,如
ADR-004-Title.md,而不是从零重新编号。 - 写清"为什么"。 记录背景、约束、取舍和放弃的替代方案,而非只有结论。
适用边界
反过来,不要为显而易见的代码写文档,不要把注释写成对代码的复述,也不要给一次性原型补 ADR。判断标准很简单:如果半年后还有人可能质疑、推翻或需要复用当时的理由,它就值得被记录。
使用场景
- 团队需要在 REST、GraphQL、tRPC 之间选定 API 架构,要求把对比过程和否决理由写成可追溯的记录。
- 项目引入一个新的主要依赖或框架,需要在合入前记录其选型背景与可逆转成本。
- 数据库 schema 正在重构,要把字段取舍的约束条件沉淀成文档,方便半年后的人理解设计意图。
- 新人或智能体频繁问起某个公共接口的由来,需要一份写清上下文和替代方案的说明而非逐次口述。
适合人员
- 需要在多个竞争方案间做技术选型的后端工程师,诉求是把权衡过程留痕而非只留一个结论。
- 负责维护项目决策史的技术负责人或架构师,诉求是让后续维护者理解历史决策的上下文。
- 刚接手代码库、频繁被同一个问题困扰的新成员或编码智能体,诉求是从文档中读到"为什么这么做"。
- 负责设计数据模型和 API 的资深开发者,诉求是把昂贵且难逆转的决策写进可检索的 ADR。