SuperAPI AI 工具集

adr

写作与研究

查看项目

更新于 10-15 16:49

技能介绍

ADR Skill 用于在架构决策发生时把它记录下来,让“为什么这样选”与代码放在一起,而不是散落在聊天记录或个人记忆里。产物是放在 docs/adr/ 下的轻量 ADR 文档。

用途:当用户说“record this”“ADR this”“let's document this decision”,或在框架、库、数据库、语言、模式、API 形态、基础设施/部署方式、自研与采购之间做出重要取舍时;用户说“we decided to…”或“the reason we're doing X instead of Y is…”时;用户追问“why did we choose X?”时,可读取并总结已有 ADR。琐碎或容易回退的选择不建议创建 ADR。

用法与产物:/adr new "<title>" 生成 docs/adr/NNNN-<slug>.md 并更新索引;/adr list 输出决策日志(ID、标题、状态、日期);/adr supersede <NNNN> 生成新 ADR 取代旧决定,并把旧 ADR 标记为 superseded。格式为轻量 Nygard ADR,包含日期、状态(proposed / accepted / deprecated / superseded by ADR-NNNN)、决策人,以及 Context、Decision、Alternatives Considered、Consequences(正面、负面/取舍、风险)等小节。

初始化:若 docs/adr/ 不存在,需先征得用户确认再创建目录、含索引表头的 README.md 和 template.md;未获明确同意不得创建文件。编号取现有 docs/adr/NNNN-*.md 最大编号之后的下一个零填充数字(从 0001 开始),slug 用标题的 kebab-case。内容需从对话中提取决策、背景、实际权衡过的备选方案与后果,不得编造未讨论过的备选方案;上下文不足时可提一两个针对性问题。用户明确表述决定时默认状态 accepted,仍在权衡时为 proposed,日期为当天,并更新 docs/adr/README.md 索引。

取代旧决策时需读取旧 ADR,在新 ADR 的 Context 中写“Supersedes ADR-NNNN”,把旧 ADR 状态改为 superseded by ADR-MMMM,并更新索引中两行;不得删除或改写过去 ADR 的决策,以保留决策变化的历史。