ADR (Architecture Decision Records)

VerifiedSafe

Creates and maintains Architecture Decision Records (ADRs) in docs/decisions/ using the MADR format. Supports creating, listing, updating, superseding, and searching ADRs.

Sby Skills Guide Bot
DocumentationBeginner
7/24/2026
Claude Code
#adr#madr#architecture-decisions#decision-log#technical-documentation

Recommended for

Automated summary

Creates and maintains Architecture Decision Records in MADR format, with commands to create, list, update, supersede, and search decisions.

Strengths

  • Detects the existing ADR directory using several common conventions before writing.
  • Generates a complete MADR structure: context, decision drivers, options, consequences, pros/cons, and links.
  • Supports the ADR lifecycle: listing, status updates, superseding, and searching.
  • Dispatches arguments directly to the requested action and includes updating the ADR index.

Limitations

  • Relies on user-provided details and does not analyze the codebase architecture itself.
  • Limited to local Markdown files, with no native integration with ticket trackers or governance tooling.
  • Search and index maintenance remain local operations over Markdown files.
When to use it

Use when a team wants a lightweight, version-controlled log of architectural decisions in Markdown.

When not to use it

Avoid when you need automated architecture analysis, ticket-tracker integration, or a full governance workflow.

Security analysis

Safe
Quality score86/100

The skill is limited to Read, Write, Edit, Glob, and Grep and only touches Markdown files inside a detected ADR directory (defaulting to docs/decisions/). There is no shell execution, no network access, no credential handling, and no destructive operations (no rm, no overwrite of unrelated files beyond the intended ADR/README index). All actions are transparent and user-driven, so listing it poses no meaningful execution risk.

No concerns found

How this analysis is made

Examples

Create an ADR
/adr create Use PostgreSQL as the primary database
Update ADR status
/adr update 4 Accepted
Search ADRs
/adr search security

name: adr description: Creates and maintains Architecture Decision Records (ADRs) in docs/decisions/ using the MADR format. Supports creating, listing, updating, superseding, and searching ADRs. argument-hint: "[create <title> | list | update <n> <status> | supersede <n> | search <keyword>]" model: haiku allowed-tools: Read, Write, Edit, Glob, Grep

adr

Purpose

Create, list, update, and supersede Architecture Decision Records (ADRs) following the Markdown Architectural Decision Records (MADR) format. Maintains an ADR directory (see Directory Convention below). Works standalone or as a companion to /architecture-design.


Directory Convention

Before creating anything, detect where this project keeps ADRs. Use Glob to check, in order: docs/decisions/ADR-*.md, docs/adr/*.md, adr/*.md, docs/architecture/decisions/*.md. Use the first directory that already contains ADRs. Only if none exists, default to docs/decisions/. All paths below refer to this detected directory.


ADR Format (MADR)

Every ADR uses this structure:

# ADR-NNN: <Title>

**Date:** YYYY-MM-DD
**Status:** Proposed | Accepted | Deprecated | Superseded by ADR-NNN
**Deciders:** <names or roles>
**Tags:** <architecture | security | database | api | infrastructure | ...>

## Context and Problem Statement

[1-3 paragraphs: what situation led to this decision? What is the problem being solved? What forces are at play?]

## Decision Drivers

- [driver 1: most important constraint or goal]
- [driver 2]

## Considered Options

1. **[Option A — Recommended]** — one-sentence description
2. **[Option B]** — one-sentence description
3. **[Option C]** — one-sentence description

## Decision Outcome

**Chosen option:** [Option A], because [one paragraph justification tied to decision drivers].

### Positive Consequences
- [what becomes easier, better, or possible]

### Negative Consequences / Trade-offs
- [what becomes harder, more expensive, or is given up]

## Pros and Cons of the Options

### Option A — [Name]
- ✅ [pro]
- ✅ [pro]
- ❌ [con]
- ❌ [con]

### Option B — [Name]
- ✅ [pro]
- ❌ [con]

## Links
- [Link to related ADR, design doc, RFC, or Jira ticket]

Instructions

Step 1 — Determine the action

Parse $ARGUMENTS first and dispatch directly — do not ask if the action is given:

| Invocation | Action | |------------|--------| | /adr create <title> | Step 2a, using <title> as the decision title | | /adr list | Step 2b | | /adr update <n> <status> | Step 2c on ADR-<n>, setting <status> | | /adr supersede <n> | Step 2d replacing ADR-<n> | | /adr search <keyword> | Step 2e with <keyword> |

If no arguments were given, ask the user what they want to do:

  • (a) Create a new ADR — document a new architectural decision
  • (b) List existing ADRs — show all ADRs with status and one-line summary
  • (c) Update an ADR's status — mark as Accepted, Deprecated, or Superseded
  • (d) Supersede an ADR — create a new ADR that replaces an existing one
  • (e) Search ADRs — find ADRs by tag, status, or keyword

Step 2a — Create a new ADR

  1. Use Glob to find all existing ADRs in the detected ADR directory. Determine the next number.
  2. Use Read on any related existing ADRs mentioned.
  3. Ask the user (skip the title question if it was passed as an argument):
    • What is the decision being made? (one sentence title)
    • What is the context / problem? (what forced this decision)
    • Who are the deciders?
    • What options were considered?
    • What was chosen and why?
  4. Generate the full ADR using the MADR format above.
  5. Use Write to save to <adr-dir>/ADR-<NNN>-<kebab-case-title>.md. Create the directory if it doesn't exist.
  6. Update the ADR index (see Step 3).

Step 2b — List existing ADRs

Use Glob to find all ADRs in the detected ADR directory. Use Read on each to extract: number, title, status, date, tags. Output a sorted table:

## Architecture Decision Records

| # | Title | Status | Date | Tags |
|---|-------|--------|------|------|
| ADR-001 | Use PostgreSQL as primary database | Accepted | 2026-01-15 | database |
| ADR-002 | Adopt hexagonal architecture | Accepted | 2026-01-20 | architecture |
| ADR-003 | Use Redis for session storage | Proposed | 2026-02-01 | infrastructure |

Step 2c — Update status

Use Read to load the ADR. Use Edit to update the Status field. Valid transitions:

  • Proposed → Accepted (decision confirmed)
  • Proposed → Deprecated (no longer relevant before being accepted)
  • Accepted → Deprecated (no longer the right approach)
  • Accepted → Superseded by ADR-NNN (replaced by a newer decision)

Step 2d — Supersede

  1. Create a new ADR (Step 2a) that documents the new decision.
  2. In the new ADR, add a link: "Supersedes ADR-NNN: [title]"
  3. Use Edit to update the old ADR's status to "Superseded by ADR-NNN".

Step 2e — Search

Use Grep across the detected ADR directory for the keyword or tag. Return matching ADRs with context.


Step 3 — Maintain ADR Index

After any create/update operation, regenerate <adr-dir>/README.md — an index of all ADRs sorted by number, showing status as a text badge: [ACCEPTED], [PROPOSED], [DEPRECATED], [SUPERSEDED].

From the file to a first result

The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.

View the source and supporting files

This download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.

1. Download the file

Download SKILL.md

From the root of a test project, save the file as .skill-downloads/adr-architecture-decision-records-mryiqha0/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.

Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.

mkdir -p '.skill-downloads/adr-architecture-decision-records-mryiqha0' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/adr-architecture-decision-records-mryiqha0/download' --output '.skill-downloads/adr-architecture-decision-records-mryiqha0/SKILL.md.part' && mv '.skill-downloads/adr-architecture-decision-records-mryiqha0/SKILL.md.part' '.skill-downloads/adr-architecture-decision-records-mryiqha0/SKILL.md'

2. Check prerequisites

Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.

Tools declared by the author (check availability in your agent): Read, Write, Edit, Glob, Grep

No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.

The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.

3. Load the skill

After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.

Claude Code
test -f '.skill-downloads/adr-architecture-decision-records-mryiqha0/SKILL.md' && test -s '.skill-downloads/adr-architecture-decision-records-mryiqha0/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/adr' && cp -R '.skill-downloads/adr-architecture-decision-records-mryiqha0' '.claude/skills/adr'

OpenSkills

OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.

Official OpenSkills installation
openskills install './.skill-downloads/adr-architecture-decision-records-mryiqha0'

openskills read 'adr-architecture-decision-records-mryiqha0'

Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.

For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.

openskills sync

Manual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.

4. Try a first task

Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:

Read .skill-downloads/adr-architecture-decision-records-mryiqha0/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.

Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.

Related skills