关于 adr-architecture
adr-architecture 是用于编写和审查架构决策记录(ADR)的技能,适合负责技术选型和架构变更的团队。它提供从梳理决策背景、记录备选方案与权衡,到质量检查和归档的流程。
主要功能
- 01梳理决策背景与约束
- 02选择 ADR 模板或方法
- 03记录决策、备选项和后果
- 04依据质量量表检查文档
- 05按编号和目录归档 ADR
适用场景
- 01记录数据库或框架选型
- 02说明架构迁移的权衡与方案
- 03记录标准变更或弃用决定
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ lyndonkl/ claude --skill adr-architecture安装后在 Claude Code 中输入/adr-architecture确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
resources/methodology.mdtemplate.mdresources/evaluators/rubric_adr_architecture.jsonresources/examples/database-selection.md详细介绍
架构决策记录(ADR)
目录
每份 ADR 都会记录:背景(是什么情况促使我们做出此决策)、决策(我们选择什么)、备选方案(考虑过的其他选项)、后果(权衡与影响)以及状态(提议、已接受、已弃用、已取代)。
快速示例:
# ADR-042: Use PostgreSQL for Primary Database
**Status:** Accepted
**Date:** 2024-01-15
**Deciders:** Backend team, CTO
## Context
Need to select primary database for new microservices platform.
Requirements: ACID transactions, complex queries, 10k+ QPS at launch.
## Decision
Use PostgreSQL 15+ as primary relational database.
## Alternatives Considered
- MySQL: Weaker JSON support, less robust constraint handling
- MongoDB: No ACID across documents, eventual consistency issues
- CockroachDB: Excellent but adds operational complexity we can't support yet
## Consequences
✓ Strong consistency and data integrity
✓ Excellent JSON support for semi-structured data
✓ Team has deep PostgreSQL experience
✗ Vertical scaling limits (will need read replicas at 50k+ QPS)
✗ More complex to shard than DynamoDB if we need it
工作流
复制此清单并跟踪进度:
ADR Progress:
- [ ] Step 1: Understand the decision
- [ ] Step 2: Choose ADR template
- [ ] Step 3: Document the decision
- [ ] Step 4: Validate quality
- [ ] Step 5: Deliver and file
步骤 1:理解决策
收集决策背景:需要做出什么决策、为何现在做出、由谁决定、有哪些约束(预算、时间线、技能、合规性)、有哪些要求(功能、非功能、业务)以及决策范围(单个服务还是整个组织)。这能确保 ADR 解决正确的问题。
步骤 2:选择 ADR 模板
对于技术选型(框架、库、数据库)→ 使用 resources/template.md。对于包含多个相互依赖选项的复杂架构决策 → 参考 resources/methodology.md。查看示例 → 查看 resources/examples/(database-selection.md、microservices-migration.md、api-versioning.md)。
步骤 3:记录决策
创建 adr-{number}-{short-title}.md,包含:清晰的标题、元数据(状态、日期、决策者)、背景(情况和要求)、决策(具体且可执行)、考虑过的备选方案(含优缺点)、后果(权衡、风险、收益)、相关时的实施说明,以及相关 ADR 的链接。请参阅常见模式,了解特定决策类型的指导。
步骤 4:验证质量
使用 resources/evaluators/rubric_adr_architecture.json 进行自检。确认:背景解释了原因,决策具体且可执行,记录了 2–3 个或更多备选方案及其权衡,后果包含收益和缺点,技术细节准确,陌生读者也能理解,并且如实说明了不足。最低标准:得分 ≥ 3.5(对于有争议或影响重大的决策,目标为 4.5 以上)。
步骤 5:交付并归档
提交已完成的 ADR 文件,重点说明已识别的关键权衡;如果未提供编号,则建议 ADR 编号;对于影响重大的决策,建议评审流程;并指出任何需要后续做出的决策。归档约定:将 ADR 按顺序编号存放在 docs/adr/ 或 architecture/decisions/ 目录中。
常见模式
对于技术选型:
- 关注技术能力与要求的匹配度
- 如有性能基准测试数据,请一并提供
- 记录团队的专业水平
- 考虑运维复杂度
对于架构变更:
- 在后果中说明迁移策略
- 记录对向后兼容性的影响
- 考虑过渡期间对团队交付速度的影响
- 说明监控和回滚计划
对于标准和约定:
- 提供该标准的实际应用示例
- 记录例外情况或灵活处理方式
- 考虑执行机制
- 说明对培训和入职的影响
对于弃用:
- 将状态设为“已弃用”或“已取代”
- 链接到取代它的 ADR
- 记录停用时间表
- 包含迁移指南
规范
要做:
- 如实说明权衡(每种选择都有缺点)
- 为缺乏当前背景信息的未来读者撰写
- 提供具体的技术细节(版本、配置)
- 承认不确定性和风险
- 保持 ADR 不可变(状态可以变更,但内容不变)
- 每项决策编写一份 ADR(范围聚焦)
不要:
- 把决策说得比实际情况更好
- 省略曾认真考虑过的备选方案
- 使用未作解释的行话
- 编写含糊的后果描述(“可能提升性能”)
- 重新审视或编辑旧 ADR(应编写新的 ADR 取而代之)
- 在一份 ADR 中合并多项彼此独立的决策
快速参考
- 标准模板:
resources/template.md - 复杂决策:
resources/methodology.md - 示例:
resources/examples/database-selection.md、resources/examples/microservices-migration.md、resources/examples/api-versioning.md - 质量评估标准:
resources/evaluators/rubric_adr_architecture.json
ADR 命名约定:adr-{number}-{short-kebab-case-title}.md
- 示例:
adr-042-use-postgresql-for-primary-database.md