Guide for creating Architectural Decision Records (ADRs) in the torrust-tracker-deployer project. Covers the ADR template, file naming, index registration, 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".
This skill guides you through creating ADRs for the Torrust Tracker Deployer project.
# 1. Create the ADR file
cp docs/decisions/TEMPLATE.md docs/decisions/{kebab-case-title}.md
# 2. Add entry to the index table in docs/decisions/README.md
# 3. Run pre-commit checks
./scripts/pre-commit.sh
# 4. Commit
git commit -m "docs: [#{issue}] add ADR for {short description}"
Create an ADR when making a decision that:
Do not create an ADR for trivial implementation choices or style preferences already covered by linting rules.
Every ADR uses the structure from docs/decisions/TEMPLATE.md:
# Decision: [Title]
## Status
[Proposed | Accepted | Rejected | Superseded]
## Date
YYYY-MM-DD
## Context
What is the issue motivating this decision?
## Decision
What change are we implementing?
## Consequences
What becomes easier or more difficult? What risks are introduced?
## Alternatives Considered
What other options were evaluated and why were they rejected?
## Related Decisions
Links to other relevant ADRs.
## References
Links to external resources, issues, or PRs.
Use kebab-case matching the decision topic:
docs/decisions/{kebab-case-title}.md
Examples: concurrent-docker-image-builds-in-tests.md, caddy-for-tls-termination.md
Fill in every section of the template:
✅ Accepted for decisions being implemented now. Use Proposed if pending review.YYYY-MM-DD formatAdd a new row to the table in docs/decisions/README.md, sorted by date (newest first):
| ✅ Accepted | YYYY-MM-DD | [Title](./filename.md) | One-line summary (max ~85 chars) |
The table columns are: Status, Date, Decision (link), Summary.
# Lint the new ADR and the updated index
npx markdownlint-cli docs/decisions/{filename}.md
npx markdownlint-cli docs/decisions/README.md
npx cspell lint docs/decisions/{filename}.md
# Run full pre-commit checks
./scripts/pre-commit.sh
# Commit with conventional format
git add docs/decisions/{filename}.md docs/decisions/README.md
git commit -m "docs: [#{issue}] add ADR for {short description}"
From docs/decisions/README.md:
| Status | Meaning |
|---|---|
| Proposed | Decision is under discussion |
| Accepted | Decision has been approved and implemented |
| Rejected | Decision was considered but not approved |
| Superseded | Decision has been replaced by a newer ADR |
docs/decisions/README.mddocs/decisions/README.mddocs/decisions/TEMPLATE.md