架构决策记录管理Skill adr-management

此技能用于创建和管理架构决策记录(ADRs),帮助团队文档化和跟踪技术选择、设计决策及架构变化。关键词:架构决策记录、ADR管理、技术文档、决策记录、软件开发架构。

架构设计 0 次安装 0 次浏览 更新于 3/11/2026

名称: adr-management 描述: 创建和管理架构决策记录(ADRs)。在需要随时间跟踪的技术选择、设计决策或架构变化时使用。这是规范的ADR技能 - 所有ADR相关工作都应使用此技能。 参数提示: <标题> 允许的工具: Read, Write, Glob, Grep, Skill, mcp__perplexity__search, mcp__context7__query-docs

ADR管理

注意: 这是插件生态系统中的规范ADR技能。有关详细的ADR模板(Nygard、MADR、Enterprise),请使用MCP工具(perplexitycontext7)研究当前最佳实践。

何时使用此技能

在需要以下情况时使用此技能:

  • 文档化技术选择或设计决策
  • 记录为什么选择特定方法而不是替代方案
  • 跟踪架构决策的历史
  • 为团队入职创建可搜索的决策记录

关键词: adr、架构决策记录、决策日志、为什么我们选择、考虑的替代方案、设计决策、技术选择

ADR工作流

创建新的ADR

  1. 确定下一个ADR编号

    • 检查/architecture/adr/中的现有ADRs
    • 使用顺序编号:0001、0002、0003等。
  2. 创建ADR文件

    • 位置:/architecture/adr/NNNN-title-in-kebab-case.md
    • 使用references/adr-template.md中的模板
  3. 填写必需部分

    • 状态:以“Proposed”开始
    • 日期:当前日期,格式为YYYY-MM-DD
    • 上下文:描述问题和约束
    • 决策:清晰陈述决策
    • 后果:列出积极、消极和中性结果
  4. 文档化替代方案

    • 列出每个考虑的替代方案
    • 包括优点、缺点以及为什么被拒绝
  5. 可选:生成上下文图

    • 如果可视化插件可用,生成显示决策上下文的图
    • 为C4或组件图生成visualization:diagram-generator代理
    • 或使用visualization:diagram-patterns技能获取图表类型指导

ADR状态生命周期

状态 含义
Proposed 决策正在讨论中
Accepted 决策已批准并实施
Deprecated 决策不再相关但保留历史
Superseded 决策已被新ADR取代

当取代ADR时:

  1. 将旧ADR的状态更新为“Superseded by ADR-XXXX”
  2. 在新ADR的“相关决策”部分引用旧ADR

搜索现有ADRs

在创建新ADR之前,搜索现有相关决策:

# 搜索ADR标题
ls /architecture/adr/

# 搜索ADR内容中的关键词
grep -r "keyword" /architecture/adr/

与架构原则集成

当决策涉及以下情况时,将ADRs链接到架构原则:

  • 实施一个原则
  • 对一个原则做出权衡
  • 建立新原则

引用格式:“此决策实施原则P1:[原则名称]”

模板参考

ADR模板可在references/adr-template.md中找到。关键部分:

  • 状态:决策的当前状态
  • 日期:决策做出的时间
  • 决策者:谁参与
  • 上下文:问题和约束
  • 决策:决定的内容
  • 后果:结果(积极、消极、中性)
  • 考虑的替代方案:评估的其他选项
  • 相关决策:链接到相关ADRs
  • 参考:支持文档

最佳实践

  1. 每个ADR一个决策 - 保持ADRs专注
  2. 不可变历史 - 从不删除ADRs,只取代
  3. 链接决策 - 引用相关ADRs
  4. 包括上下文 - 未来读者需要理解约束
  5. 诚实对待权衡 - 也记录负面后果

相关:规范驱动的ADRs

如果从规范中提取决策,考虑使用spec-driven-development插件的/spec:adr:create,它直接将ADRs链接到规范ID(SPEC-xxx)。这些ADRs存储在docs/adr/中(链接到规范ID)。

两种方法都使用MADR格式,可以在同一项目中共存。

仓库结构

确保项目有标准架构目录:

/architecture/
  /adr/
    0001-record-template.md
    0002-first-decision.md
    ...

如果目录不存在,在添加ADRs之前创建它。

用户界面

当用户直接调用时,此技能创建新的ADR。

执行工作流

  1. 确定下一个ADR编号 通过扫描/architecture/adr/中的现有ADRs(顺序:0001、0002等)
  2. 创建ADR文件 使用标准模板,顺序编号,初始状态“Proposed”,当前日期(UTC),以及来自参数的标题
  3. 报告创建的文件路径 以便用户完成上下文、决策和后果部分

示例用法

/ea:adr-management 使用PostgreSQL进行持久化
/ea:adr-management 采用微服务架构

版本历史

  • v1.0.0 (2025-12-05): 初始发布
    • ADR创建和管理工作流
    • 状态生命周期文档
    • 与架构原则集成
    • 模板参考和最佳实践

最后更新

日期: 2025-12-05 模型: claude-opus-4-5-20251101