create-adr
Provides a guide for creating, naming, and indexing ADRs to document project design decisions.
Install
mkdir -p .claude/skills/create-adr && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/10642" && unzip -o skill.zip -d .claude/skills/create-adr && rm skill.zipInstalls to .claude/skills/create-adr
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Guide for creating Architectural Decision Records (ADRs) in the torrust-tracker project. Covers the timestamp-based file naming convention, free-form structure, index registration in the docs/adrs/README.md index table, and commit workflow. Use when documenting architectural decisions, recording design choices, or adding decision records. Triggers on "create ADR", "add ADR", "new decision record", "architectural decision", "document decision", or "add decision".Key capabilities
- →Generate timestamp-based ADR filenames
- →Register ADRs in the project index
- →Validate ADRs using linters
- →Cross-link ADRs with affected code
How it works
Generates a timestamped filename, creates the ADR file, registers it in the index, and commits the changes.
Inputs & outputs
When to use create-adr
- →Documenting new design decisions
- →Creating an ADR file
- →Registering decisions in the index
- →Recording architectural choices
About this skill
Creating Architectural Decision Records
Quick Reference
# 1. Generate the filename prefix
date -u +"%Y%m%d%H%M%S"
# e.g. 20241115093012
# 2. Create the ADR file
# Format: YYYYMMDDHHMMSS_snake_case_title.md
touch docs/adrs/20241115093012_your_decision_title.md
# 3. Update the index
# Add entry to docs/adrs/index.md
# 4. Validate and commit
linter markdown
linter cspell
git commit -S -m "docs(adrs): add ADR for {short description}"
When to Create an ADR
Create an ADR when making a decision that:
- Affects the project's architecture or design patterns
- Chooses one approach over alternatives that were considered
- Has consequences worth documenting for future contributors
- Answers "why was this done this way?"
Do not create an ADR for trivial implementation choices or style preferences covered by linting.
File Naming Convention
Format: YYYYMMDDHHMMSS_snake_case_title.md
Generate the timestamp prefix:
date -u +"%Y%m%d%H%M%S"
Examples:
20240227164834_use_plural_for_modules_containing_collections.md20241115093012_adopt_axum_for_http_server.md
Location: docs/adrs/
ADR Structure
There is no rigid template — derive structure from context. Use docs/templates/ADR.md as a starting point.
Optional sections to add when relevant:
- Alternatives Considered: other options explored and why they were rejected
- Consequences: positive and negative effects of the decision
ADR Status
Do not add a - Status: header by default. An ADR merged into develop or main is
implicitly accepted — the PR review process is the acceptance gate.
Only add a - Status: header for special terminal states:
- Status: Superseded by [ADR link]— this decision has been replaced by a newer ADR.- Additional states (e.g.
Deprecated) may be introduced as needed.
Step-by-Step Process
Step 1: Generate Filename
PREFIX=$(date -u +"%Y%m%d%H%M%S")
TITLE="your_decision_title" # snake_case
echo "docs/adrs/${PREFIX}_${TITLE}.md"
Step 2: Write the ADR
- Description: Explain the problem thoroughly — enough context for future contributors
- Agreement: State clearly what was decided and why
- Date: Today's date (
date -u +"%Y-%m-%d") - References: Issues, PRs, external docs
Step 3: Update the Index
Add a row to the index table in docs/adrs/index.md:
| [YYYYMMDDHHMMSS](YYYYMMDDHHMMSS_your_title.md) | YYYY-MM-DD | Short Title | One-sentence description. |
- The first column links to the ADR file using the timestamp as display text.
- The short description should allow a reader to understand the decision without opening the file.
Step 3.5: Cross-link ADR and Affected Code
When an ADR affects a specific area of code, keep discovery bidirectional:
- Add a short "Affected Code" section in the ADR with links to key files (module entry points, traits, setup/wiring files).
- Add concise module-level doc comments in those code files pointing back to the ADR.
This keeps rationale discoverable whether a contributor starts from docs or from code.
Step 4: Validate and Commit
linter markdown
linter cspell
linter all # full check
git add docs/adrs/
git commit -S -m "docs(adrs): add ADR for {short description}"
git push {your-fork-remote} {branch}
If code comments were added to establish ADR links, include those files in the same commit when practical.
Example ADR
For a real example, see 20240227164834_use_plural_for_modules_containing_collections.md.
When not to use it
- →Trivial implementation choices
- →Style preferences covered by linting
Prerequisites
Limitations
- →No rigid template provided
- →Status headers only for terminal states
How it compares
Enforces a strict project-wide naming and indexing convention rather than allowing free-form documentation.
Compared to similar skills
create-adr side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| create-adr (this skill) | 0 | 2mo | Review | Beginner |
| project-planner | 32 | 9mo | Review | Intermediate |
| spec-kit-workflow | 11 | 8mo | No flags | Intermediate |
| specification-architect | 13 | 9mo | Review | Advanced |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by torrust
View all by torrust →You might also like
project-planner
adrianpuiu
Comprehensive project planning and documentation generator for software projects. Creates structured requirements documents, system design documents, and task breakdown plans with implementation tracking. Use when starting a new project, defining specifications, creating technical designs, or breaking down complex systems into implementable tasks. Supports user story format, acceptance criteria, component design, API specifications, and hierarchical task decomposition with requirement traceability.
spec-kit-workflow
jmanhype
Guides specification-driven development workflow. Automatically invoked when discussing new features, specifications, technical planning, or implementation tasks. Ensures proper workflow phases (specify → clarify → plan → checklist → tasks → analyze → implement).
specification-architect
adrianpuiu
A rigorous, traceability-first system that generates five interconnected architectural documents (blueprint.md, requirements.md, design.md, tasks.md, and validation.md) with complete requirements-to-implementation traceability. Use this skill when users need to architect systems, create technical specifications, or develop structured project documentation with guaranteed traceability.
architecture
davila7
Architectural decision-making framework. Requirements analysis, trade-off evaluation, ADR documentation. Use when making architecture decisions or analyzing system design.
context-driven-development
wshobson
Use this skill when working with Conductor's context-driven development methodology, managing project context artifacts, or understanding the relationship between product.md, tech-stack.md, and workflow.md files.
planning-agent
parcadei
Planning agent that creates implementation plans and handoffs from conversation context