关于 adr-code-traceability
一项为代码添加 Architecture Decision Record 引用的参考技能,提供引用位置指南及 Python、TypeScript、Rust 和 Go 的模式。它帮助开发者将实现选择关联到相关决策,同时避免为每项改动添加注释。
主要功能
- 01按语言提供引用模式
- 02文件头与行内注释指南
- 03引用位置决策树
- 04ADR 注释示例
- 05无需添加引用的情况
适用场景
- 01将新文件关联到 ADR
- 02说明不明显的实现选择
- 03实现过程中补充决策背景
- 04避免过度添加 ADR 注释
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ terrylica/ cc-skills --skill adr-code-traceability安装后在 Claude Code 中输入/adr-code-traceability确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/evolution-log.mdlanguage-patterns.mdplacement-guidelines.md详细介绍
ADR 代码可追溯性
在代码中添加架构决策记录(ADR)引用,以便追溯决策。提供特定语言的模式和放置指南。
自我演进的技能:此技能会在使用过程中不断改进。如果指令有误、参数发生偏移,或需要采用变通方法,请立即修复此文件,不要延后。仅针对真实且可复现的问题进行更新。
何时使用此技能
- 作为 ADR 实施的一部分创建新文件
- 记录不明显的实现选择
- 用户提到“ADR 可追溯性”“代码引用”或“记录决策”
- 在
/itp:go第 1 阶段向代码中添加决策背景
快速参考
引用格式
ADR: {adr-id}
路径推导:ADR: 2025-12-01-my-feature → /docs/adr/2025-12-01-my-feature.md
语言模式(摘要)
| 语言 | 新文件头部 | 行内注释 |
|---|---|---|
| Python | """...\n\nADR: {adr-id}\n""" | # ADR: {adr-id} - reason |
| TypeScript | /** ... \n * @see ADR: {adr-id} */ | // ADR: {adr-id} - reason |
| Rust | //! ...\n//! ADR: {adr-id} | // ADR: {adr-id} - reason |
| Go | // Package ... \n// ADR: {adr-id} | // ADR: {adr-id} - reason |
完整示例请参阅语言模式。
放置决策树
Is this a NEW file created by the ADR?
├── Yes → Add reference in file header
└── No → Is the change non-obvious?
├── Yes → Add inline comment with reason
└── No → Skip ADR reference
详细指南请参阅放置指南。
示例
新文件(Python)
"""
Redis cache adapter for session management.
ADR: 2025-12-01-redis-session-cache
"""
class RedisSessionCache:
...
行内注释(TypeScript)
// ADR: 2025-12-01-rate-limiting - Using token bucket over sliding window
// for better burst handling in our use case
const rateLimiter = new TokenBucketLimiter({ rate: 100, burst: 20 });
不要为以下情况添加引用
- 每一行改动(仅在有助于追溯时添加)
- 微小改动(格式调整、修正错别字)
- 标准模式(广为人知的惯用写法)
- 测试文件(除非测试方法是 ADR 中的决策)
参考文档
故障排除
| 问题 | 原因 | 解决方案 |
|---|---|---|
| 找不到 ADR | 路径格式错误 | 使用相对于仓库根目录的路径 |
| 引用未显示 | 注释语法错误 | 检查对应语言的注释格式 |
| 引用过多 | 文档记录过度 | 仅在有助于追溯时添加 |
| ADR 链接已过时 | ADR 已重命名 | 更新路径,使其与当前 ADR 文件名一致 |
| Hook 提醒很烦人 | 此改动没有 ADR | 添加行内 ADR 注释或创建新的 ADR |
执行后反思
此技能完成后,请在结束前检查:
- 命令是否成功? — 如果没有,请修复导致失败的指令或错误表。
- 参数或输出是否发生变化? — 如果底层工具的接口发生偏移,请更新用法示例和参数表,使其保持一致。
- 是否需要采用变通方法? — 如果你不得不临时调整(使用不同的标志、增加额外步骤),请更新此 SKILL.md,确保下次调用时无需采用相同的变通方法。
仅在问题真实且可复现时进行更新,不要基于猜测更新。
评论
支持 Markdown