adr-code-traceability
Add ADR references to code for decision traceability. Use when creating new files, documenting non-obvious implementation choices, or when user mentions ADR traceability, code reference, or document decision in code. Provides language-specific patterns for Python, TypeScript, Rust, Go.
Installation
Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.
View source ↗GuidesSkill instructions
ADR Code Traceability
Add Architecture Decision Record references to code for decision traceability. Provides language-specific patterns and placement guidelines.
When to Use This Skill
- Creating new files as part of an ADR implementation
- Documenting non-obvious implementation choices
- User mentions "ADR traceability", "code reference", "document decision"
- Adding decision context to code during
/itp:goPhase 1
Quick Reference
Reference Format
ADR: {adr-id}
Path Derivation: ADR: 2025-12-01-my-feature → /docs/adr/2025-12-01-my-feature.md
Language Patterns (Summary)
| Language | New File Header | Inline Comment |
|---|---|---|
| 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 |
See Language Patterns for complete examples.
Placement Decision Tree
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
See Placement Guidelines for detailed guidance.
Examples
New File (Python)
"""
Redis cache adapter for session management.
ADR: 2025-12-01-redis-session-cache
"""
class RedisSessionCache:
...
Inline Comment (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 });
Do NOT Add References For
- Every line touched (only where traceability adds value)
- Trivial changes (formatting, typo fixes)
- Standard patterns (well-known idioms)
- Test files (unless test approach is an ADR decision)
Reference Documentation
- Language Patterns - Python, TS, Rust, Go patterns
- Placement Guidelines - When and where to add
Examples
Read the usage examples in the source repository.
View source ↗Source history
- Indexed on
- 2026-01-20
- Index updated
- 2026-02-02
- Branch
- main
Index and sync dates describe this directory. View the source repository for code history.
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!