adr
Skill20 starsChanged 36 days agoMITView on GitHub
Document architectural decisions in standardized ADR format. This skill should be used when making significant technical decisions, choosing between approaches, establishing patterns, or when other skills (create-plan, implement-plan, brainstorm) identify decisions that need documentation. Triggers on "document decision", "create ADR", "architectural decision", or automatically when invoked by other skills during planning and implementation.
90 other projects use a version of this.
Adopted by
Most recently taken up by
- GustavoAlecio/claude-setuptheir own version, first seen Nov 8, 2026
- computerlovetech/skillstheir own version, first seen Nov 8, 2026
- rvdbreemen/OTGW-firmwaretheir own version, first seen Nov 8, 2026
- axodouble/skillstheir own version, first seen Nov 8, 2026
- RodrigoAnciaes/golem-sddtheir own version, first seen Nov 8, 2026
- n1kben/agentstheir own version, first seen Nov 8, 2026
Used with
Projects with it also use fdr, runbook and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
thiagofgfSkillfdr
Use when creating, changing, reviewing, retiring, auditing, or backfilling implemented user-visible feature behavior, permissions, feature-specific rationale, tradeoffs, or relationships to architectural decisions.
Also in 3 projects that use this
AnthropicSkillrunbook
Create or update an operational runbook for a recurring task or procedure. Use when documenting a task that on-call or ops needs to run repeatably, turning tribal knowledge into exact step-by-step commands, adding troubleshooting and rollback steps to an existing procedure, or writing escalation paths for when things go wrong.
Also in 5 projects that use this
drewdrewthisSkillsweep
Search for similar patterns, anti-patterns, or issues elsewhere in the codebase after a fix or feature. Use after implementing a fix to catch the same bug in other places, or proactively to audit for a known pattern.
Also in 4 projects that use this
vndeeSkillproduct-spec
Use when starting a new feature, product, or project — before any architecture or code, to define what to build and why
Also in 3 projects that use this
OpenAISkillthreat-model
Use when Codex is already in the threat-modeling phase of a security scan, the user explicitly invokes $threat-model, or the user explicitly asks to create, update, or persist a repository threat model. Do not use as the primary trigger for full PR, commit, branch, patch, or repository scans.
Also in 6 projects that use this
montymiSkilltech-spec
Parse and review Technical Specification documents for completeness, consistency, and implementation readiness
Also in 3 projects that use this
Other versions90 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 90
- CrowdDotDev/crowd.dev★ 3.4ksame name
- chattocorp/chatto★ 2.9ksame name
- Cosmian/kms★ 372same name
- linuxfoundation/insights★ 288same name
- rvdbreemen/OTGW-firmware★ 213same name
- sd0xdev/sd0x-dev-flow★ 192same name
- sd0xdev/sd0x-harness★ 192same name
- irahardianto/awesome-agv★ 157same name
- jellydn/my-ai-tools★ 127same name
- EmeaAppGbb/spec2cloud★ 100same name
80 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository34 other files it gives its agents.
- adversarial-reviewerSkill
- agent-creatorSkill
- brainstormSkill
- codebase-auditSkill
- codebase-researchSkill
- code-quality-auditSkill
- code-reviewSkill
- context-saverSkill
- continuous-learningSkill
- create-planSkill
- design-languageSkill
- e2e-testingSkill
- eval-harnessSkill
- grumpy-reviewerSkill
- implement-phaseSkill
- implement-planSkill
- iterate-planSkill
- prompt-generatorSkill
- security-reviewSkill
- ship-issueSkill
- skill-visualizerSkill
- strategic-compactSkill
- tt-create-build-loopSkill
- tt-create-planSkill
- tt-implement-phaseSkill
- tt-implement-planSkill
- tt-workflow-auditSkill
- tt-workflow-buildSkill
- tt-workflow-runSkill
- user-storySkill
- verification-loopSkill
- video-explainerSkill
- visual-explainerSkill
- workflow-guideSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
28 rules. 0 are common, 23 are distinctive, and 5 are very specific to this project.
0
Common
Most of the 75 edited versions we read keep these.
23
Distinctive
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 33
Document significant architectural and technical decisions in a standardized, searchable format optimized for LLM context efficiency.
- Distinctive: line 47
When consulting ADRs, follow this tiered approach:
- Distinctive: line 97
Before creating an ADR, determine the next sequence number:
- Very specific: line 104
If no ADRs exist, start with 0001.
- Very specific: line 133
Use this format (also in references/adr-template.md):
- Distinctive: line 200
One decision per ADR: If you find yourself documenting multiple decisions, split into separate ADRs:
- Distinctive: line 235
If invoked automatically by another skill, extract:
- Distinctive: line 241
If information is incomplete, ask the user:
- Distinctive: line 255
Write ADR using template
- Very specific: line 260
Always update
docs/decisions/INDEX.md: when creating, modifying, or deprecating an ADR. - Distinctive: line 301
When adding a new ADR:
- Distinctive: line 302
Add row to "Active Decisions" table
- Distinctive: line 303
Add entry under appropriate category (create category if needed)
- Distinctive: line 305
When deprecating an ADR:
- Distinctive: line 307
Add "Replaced By" reference
- Very specific: line 312
If docs/decisions/INDEX.md doesn't exist, create it:
- Distinctive: line 324
When create-plan makes a design decision in Phase 4, it should invoke this skill:
- Distinctive: line 343
When implement-plan encounters an architectural choice:
- Distinctive: line 357
When brainstorm identifies key decisions:
- Distinctive: line 367
When this skill is invoked by another skill (as a subagent), return concise output:
- Distinctive: line 402
When a decision is superseded:
- Very specific: line 404
Update old ADR status: Status: Superseded by ADR-NNNN
- Distinctive: line 405
Create new ADR referencing the old one in "Related Decisions"
- Distinctive: line 406
Update any plans or docs referencing the old ADR
- Distinctive: line 410
Before finalizing an ADR:
- Distinctive: line 434
One sentence, one decision: If you can't state the decision in one sentence, you may be bundling multiple decisions
- Distinctive: line 437
Quick Reference is the ADR: If someone only reads the Quick Reference, they should understand the decision
- Distinctive: line 469
Keep INDEX.md as the single source of truth
“Common” is measured: kept by at least 6 in 10 of the 75 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Architectural Decision Records (ADR)
<!-- contents: generated by tests/skill_structure.py --write; edit headings, not this block -->Contents
- Design Principles
- When to Use This Skill
- ADR Location and Naming
- Getting the Next ADR Number
- ADR Status Values
- Creating an ADR
- Workflow
- Integration with Other Skills
- Response Format (for subagent use)
- Listing Existing ADRs
- Searching ADRs
- Deprecating an ADR
- Quality Checklist
- Best Practices
- Resources
Reference files (open one when a step points to it):
references/adr-template.md: ADR-NNNN: [Title]references/index-template.md: Architectural Decision Records
<!-- /contents -->Document significant architectural and technical decisions in a standardized, searchable format optimized for LLM context efficiency.
Design Principles
Context Conservation
ADRs are designed for efficient LLM consumption:
- Small, focused files - One decision per ADR, minimal content
- Quick Reference block - First 5 lines summarize the entire ADR
- Central INDEX.md - Single file listing all ADRs with one-line summaries
LLM Reading Strategy
When consulting ADRs, follow this tiered approach:
TIER 1: Read INDEX.md (one file, all summaries)
↓ Identify potentially relevant ADRs
TIER 2: Read Quick Reference block only (first 10 lines of candidate ADRs)
↓ Confirm relevance
TIER 3: Read full ADR content (only when details are needed)Implementation:
# Tier 1: Scan index
Read("docs/decisions/INDEX.md")
# Tier 2: Quick reference only (use limit parameter)
Read("docs/decisions/ADR-0001-title.md", limit=10)
# Tier 3: Full content (only if needed)
Read("docs/decisions/ADR-0001-title.md")When to Use This Skill
Directly invoked when:
- Making a significant technical decision
- Choosing between architectural approaches
- Establishing patterns or conventions
- Documenting why a particular technology was selected
Automatically invoked by other skills when:
- create-plan: Design decision is made in Phase 4
- implement-plan: Mismatch discovered or architectural choice made during implementation
- brainstorm: Key decisions identified during analysis
ADR Location and Naming
Directory: docs/decisions/
Naming Convention: ADR-NNNN-short-title.md
NNNN: Zero-padded sequential number (0001, 0002, etc.)short-title: Lowercase, hyphenated description (max 50 chars)
Examples:
ADR-0001-use-jwt-for-authentication.mdADR-0002-postgresql-over-mongodb.mdADR-0003-event-sourcing-for-audit.md
Getting the Next ADR Number
Before creating an ADR, determine the next sequence number:
# Find highest existing ADR number
ls docs/decisions/ADR-*.md 2>/dev/null | sort -t- -k2 -n | tail -1 | grep -oP 'ADR-\K\d+' || echo "0000"If no ADRs exist, start with 0001.
ADR Status Values
| Status | Meaning |
| Proposed | Under consideration, not yet decided |
| Accepted | Decision made, ready for implementation |
| Deprecated | Was accepted, now superseded |
| Superseded | Replaced by another ADR (link to replacement) |
Creating an ADR
Required Information
Gather these inputs (ask user if not provided):
| Field | Description | Required |
| Title | Short, descriptive title | Yes |
| Context | Why is this decision needed? | Yes |
| Options | What alternatives were considered? | Yes |
| Decision | What was decided? | Yes |
| Rationale | Why this option? | Yes |
| Consequences | What are the implications? | Yes |
| Related ADRs | Links to related decisions | If applicable |
ADR Template
Use this format (also in references/adr-template.md):
# ADR-NNNN: [Title]
> **Quick Reference** | Status: [Accepted] | Date: [YYYY-MM-DD]
> **Decision**: [One sentence: what was decided]
> **Context**: [One sentence: why this decision was needed]
> **Alternatives**: [Rejected options, comma-separated]
> **Impact**: [Key areas affected, comma-separated]
---
## Context
[2-3 sentences max. The problem or opportunity being addressed.]
## Decision
**We will use [chosen option].**
[1-2 sentences explaining the decision.]
## Alternatives Considered
| Option | Pros | Cons | Why Not |
|--------|------|------|---------|
| [Option A] | [Key pro] | [Key con] | [Brief reason] |
| [Option B] | [Key pro] | [Key con] | [Brief reason] |
## Consequences
- **Positive**: [Key benefit]
- **Negative**: [Key trade-off]
- **Requires**: [What must be done as a result]
## Related
- [ADR-XXXX](./ADR-XXXX-title.md): [Relationship]Quick Reference Block (Mandatory)
The first 5 lines after the title form the Quick Reference block. This enables LLMs to assess relevance without reading the full document.
Format (must fit in ~5 lines):
> **Quick Reference** | Status: [Status] | Date: [Date]
> **Decision**: [One sentence summary of what was decided]
> **Context**: [One sentence on why this decision was needed]
> **Alternatives**: [Comma-separated list of rejected options]
> **Impact**: [Comma-separated list of affected areas/components]Example:
> **Quick Reference** | Status: Accepted | Date: 2024-01-15
> **Decision**: Use JWT tokens for API authentication instead of sessions.
> **Context**: Need stateless auth for horizontal scaling of API servers.
> **Alternatives**: Session cookies, OAuth tokens, API keys
> **Impact**: Auth service, API gateway, client SDKsKeeping ADRs Small
Target size: 30-50 lines maximum (excluding Quick Reference)
One decision per ADR. If you find yourself documenting multiple decisions, split into separate ADRs:
| Instead of | Create |
| "Database and caching choices" | ADR-0001: PostgreSQL for primary database |
| ADR-0002: Redis for session caching | |
| "Authentication architecture" | ADR-0003: JWT for API auth |
| ADR-0004: OAuth2 for third-party integration |
Use tables over prose - More scannable, less verbose:
## Alternatives Considered
| Option | Pros | Cons | Why Not |
|--------|------|------|---------|
| MongoDB | Flexible schema | No ACID | Need transactions |
| MySQL | Mature, fast | Less JSON support | PostgreSQL better fit |Workflow
Step 1: Detect ADR Trigger
An ADR should be created when:
- Explicit request: User asks to document a decision
- Design choice: During planning, a significant choice between approaches is made
- Pattern establishment: A new convention or pattern is being introduced
- Technology selection: A library, framework, or service is chosen
- Architecture change: Structural changes to the system
- Deviation from plan: Implementation differs from original plan for good reason
Step 2: Gather Information
If invoked automatically by another skill, extract:
- Context from the current discussion
- Options that were considered
- The decision that was made
- Rationale from the analysis
If information is incomplete, ask the user:
To document this architectural decision, I need:
1. What problem or context led to this decision?
2. What options were considered?
3. Why was this option chosen over others?
4. What are the expected consequences?Step 3: Create ADR File
- Determine next ADR number
- Generate filename from title
- Write ADR using template
- Report creation to calling context
Step 4: Update INDEX.md (Required)
Always update docs/decisions/INDEX.md when creating, modifying, or deprecating an ADR.
INDEX.md Structure
# Architectural Decision Records
Quick reference index for all architectural decisions. Read this file first to identify relevant ADRs.
## Active Decisions
| ADR | Decision | Impact | Date |
|-----|----------|--------|------|
| [0001](./ADR-0001-use-jwt-auth.md) | Use JWT for API authentication | Auth, API | 2024-01-15 |
| [0002](./ADR-0002-postgresql-database.md) | PostgreSQL as primary database | Data layer | 2024-01-16 |
| [0003](./ADR-0003-redis-caching.md) | Redis for session and query caching | Performance | 2024-01-17 |
## Superseded Decisions
| ADR | Was | Replaced By | Date |
|-----|-----|-------------|------|
| [0000](./ADR-0000-example.md) | Session-based auth | ADR-0001 | 2024-01-10 |
## By Category
### Authentication & Security
- [ADR-0001](./ADR-0001-use-jwt-auth.md): JWT for API authentication
### Data & Storage
- [ADR-0002](./ADR-0002-postgresql-database.md): PostgreSQL as primary database
- [ADR-0003](./ADR-0003-redis-caching.md): Redis for caching
### API Design
(none yet)
### Infrastructure
(none yet)Updating INDEX.md
When adding a new ADR:
- Add row to "Active Decisions" table
- Add entry under appropriate category (create category if needed)
When deprecating an ADR:
- Move row from "Active Decisions" to "Superseded Decisions"
- Add "Replaced By" reference
- Update category listing
Creating INDEX.md
If docs/decisions/INDEX.md doesn't exist, create it:
mkdir -p docs/decisionsThen write the initial structure with the first ADR entry.
Integration with Other Skills
From create-plan
When create-plan makes a design decision in Phase 4, it should invoke this skill:
TRIGGER: Design option selected in create-plan Phase 4
ACTION: Create ADR documenting the decision
LINK: Reference ADR in plan's "Design Decision" sectionThe plan should include:
## Design Decision
[Brief description]
See [ADR-NNNN](../decisions/ADR-NNNN-title.md) for full rationale.From implement-plan
When implement-plan encounters an architectural choice:
TRIGGER:
- Mismatch between plan and reality requiring decision
- New pattern being established
- Technology choice during implementation
ACTION: Create ADR documenting the decision
LINK: Note in plan file and inline statusFrom brainstorm
When brainstorm identifies key decisions:
TRIGGER: Analysis identifies significant decisions that should be documented
ACTION: Create ADRs for each major decision (can be "Proposed" status)
LINK: Reference in brainstorm output's "Key Decisions" sectionResponse Format (for subagent use)
When this skill is invoked by another skill (as a subagent), return concise output:
STATUS: CREATED
ADR: docs/decisions/ADR-NNNN-title.md
INDEX: docs/decisions/INDEX.md (updated)
DECISION: [One-line summary of decision]
IMPACT: [Comma-separated affected areas]Always confirm INDEX.md was updated - this is critical for LLM discoverability.
Listing Existing ADRs
To review existing decisions:
# List all ADRs with status
grep -l "Status.*Accepted" docs/decisions/ADR-*.md | while read f; do
title=$(head -1 "$f" | sed 's/# //')
echo "$f: $title"
doneSearching ADRs
Find ADRs related to a topic:
# Search ADR content
grep -l "authentication" docs/decisions/ADR-*.mdDeprecating an ADR
When a decision is superseded:
- Update old ADR status:
**Status**: Superseded by [ADR-NNNN](./ADR-NNNN-title.md) - Create new ADR referencing the old one in "Related Decisions"
- Update any plans or docs referencing the old ADR
Quality Checklist
Before finalizing an ADR:
Structure (Context Conservation):
- Quick Reference block is complete (all 5 lines)
- Quick Reference fits in first 10 lines of file
- Total ADR is under 50 lines
- One decision per ADR (no bundled decisions)
- Uses tables instead of verbose prose
Content:
- Decision is clearly stated in one sentence
- Context is 2-3 sentences max
- At least 2 alternatives listed with pros/cons
- Consequences include positive AND negative
Index:
- INDEX.md updated with new entry
- Category section updated
- Impact areas listed accurately
Best Practices
Writing Concise ADRs
- One sentence, one decision: If you can't state the decision in one sentence, you may be bundling multiple decisions
- Tables over paragraphs: Alternatives table is more scannable than prose
- Impact over rationale: Focus on what's affected, not lengthy justification
- Quick Reference is the ADR: If someone only reads the Quick Reference, they should understand the decision
Size Guidelines
| Section | Target Length |
| Quick Reference | 5 lines (mandatory) |
| Context | 2-3 sentences |
| Decision | 1-2 sentences |
| Alternatives table | 2-4 rows |
| Consequences | 3 bullets |
| Total ADR | 30-50 lines |
When to Split ADRs
Split into multiple ADRs when:
- Decision covers multiple technologies
- Decision affects unrelated areas
- You're writing "and" in the decision statement
- Different stakeholders care about different parts
When NOT to Create an ADR
- Minor implementation details
- Obvious choices with no real alternatives
- Temporary decisions that will be revisited
- Style preferences (unless establishing standards)
ADR Maintenance
- Review ADRs quarterly for relevance
- Deprecate outdated decisions promptly
- Keep INDEX.md as the single source of truth
- Categories in INDEX.md should match project structure
Resources
references/
adr-template.md: Standalone ADR template (30-50 lines target)index-template.md: INDEX.md template for new projects
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

