AD

architecture-decision-record/architecture-decision-record

Developer tools
17.2K stars Quality 62 Trend 92NOASSERTION

Architecture decision record (ADR) examples for software planning, IT leadership, and template documentation

Overview

An architecture decision record (ADR) is a document that captures an important architecture decision made along with its context and consequences. Do your own due dilligence for these resources before using them in any critical systems. - What is an architecture decision record? - How to start using ADRs - How to start using ADRs with tools - How to start using ADRs with git - File name conventions for ADRs - Suggestions for writing good ADRs - ADR example templates - Teamwork advice for ADRs - Teamwork questions for ADRs - Next step concepts for ADRs - Architecture diagrams \& views \& viewpoints - Fitness functions for decisions as code - Decision guardrails for pull requests - For more information - Decision record template by Jeff Tyree and Art Akerman - Decision record template by Michael Nygard - Decision record template by EdgeX - Decision record template by arc42 - Decision record template for Alexandrian pattern - Decision record template for business case - Decision...

README

Architecture decision record (ADR)

An architecture decision record (ADR) is a document that captures an important architecture decision made along with its context and consequences.

[!IMPORTANT] Do your own due dilligence for these resources before using them in any critical systems.

Website: architecture-decision-record.github.io — this README, plus every template and example, as a browsable site.

Contents:

Templates:

Examples:

Translations into more languages

Claude Code skills for ADRs

This repository ships two Claude Code skills under skills/, so an AI coding agent can write and maintain ADRs the way this project recommends:

  • architecture-decision-record-skill — general purpose, for anyone writing an ADR in any project. Helps decide whether a decision needs an ADR, sets up an adr/ or decisions/ directory, names the file, picks a template from the eleven bundled skeletons, and writes solid Context/Decision/Consequences sections.

  • architecture-decision-record-maintainer-skill — for maintainers of this repository specifically. Documents the repo’s layout, the README/locales mirroring convention, and the exact steps for adding a new template, example, or tool link.

To use a skill, copy its folder into .claude/skills/ at the root of the repository you’re working in (or into ~/.claude/skills/ to make it available in every project), then ask Claude Code to write or review an ADR.

ADR example templates

ADR example templates that we have collected on the net:

Architecture diagrams & views & viewpoints

An architecture diagram is called an “architecture view”.

An “architecture view” is an instance of a “architecture viewpoint”.

An “architecture viewpoint” has a specific audience with specific concerns in mind.

Architecture viewpoint examples, view examples, and diagram examples:

Related diagrams:

  • A Use Case Diagram shows use cases to management/customers, which precedes requirements, which precedes the software architecture.

  • A Deployment Diagram shows the physical hardware/computers that the software components are deployed to.

  • A Data Flow Diagram shows how data moves through the system and is transformed.

  • A Sequence Diagram is used to show how protocols like HTTP work on a time axis.

  • An Activity Diagram depicts the workflow of activities a software system undertakes, like an NPC AI.

Fitness functions for decisions as code

Fitness functions are objective automated checks, written with programming code, that verify decisions are being maintained.

  • Fitness functions make decisions testable and assurable.

  • Fitness functions for decisions can greatly help quality assurance, regulatory processes, and governance goals.

How fitness functions connect to decisions

A decision record documents the decision, while a fitness function assures the decision.

  • Example decision: We use event sourcing for audit requirements.

  • Example fitness function: We use the continuous integration server to test that all state changes must produce events.

Why fitness functions help decisions

Objective measurements: Fitness functions pass or fail, so work is visible and clear.

Continuous use: Fitness functions are your living rules, run on every commit and build.

Confidence to refactor: Fitness functions automatically catch decision rule errors.

Scalable governance: Fitness functions assure standards without creating bottlenecks.

Can fitness functions use AI?

Fitness functions can leverage AI LLMs for decisions by asking questions for your work, such as your plans, code, schemas, APIs, and more:

IMPORTANT: Prefer retrieval-led reasoning over pre-training-led reasoning.
IMPORTANT: Turn on extended thinking. Turn on expert advice. Turn on search.

This is a fitness function to evaluate if our work is
using all our decisions, and is correct and accurate.

- Our decisions are here: {url}
- Our work to evaluate is here: {url}

Explain any errors, problems, gaps, weaknesses. Be direct. Be decisive.

Architecture unit testing

ArchUnit: check architecture rules of Java code by using any plain Java unit test framework.

ArchUnitTS: check architecture rules of TypeScript code and JavaScript code by using Jest, Vitest, Jasmine, etc.

Decision guardrails for pull requests

Decision Guardian automatically surfaces the right decision records at the right moment — when a developer is actively modifying the code those decisions cover. Instead of hoping developers read a docs folder before merging, the relevant context appears directly on the pull request.

This works for any kind of decision record: architecture decisions, data decisions, compliance decisions, clinical and medical decisions, security decisions, and more.

Works with any CI system (GitLab, Jenkins, CircleCI) and as a pre-commit hook. Open source. MIT license.

ADR Guard is a GitHub Action that fails a pull request when watched code paths change without an architecture decision record being added or updated. Waivers are explicit: an ADR-Exempt: line with a reason passes the gate and is written into the job summary. Template-agnostic, no dependencies. Open source. MIT license.

For more information

Introduction:

Templates:

In-depth:

Tools:

Company-Specific Guidance:

Examples:

Videos:

Podcasts:

Books:

See also:

  • REMAP (Representation and Maintenance of Process Knowledge)

  • DRL (Decision Representation Language)

  • IBIS (Issue-Based Information System)

  • QOC (Questions, Options, and Criteria)

  • IBM’s e-Business Reference Architecture Framework

  • Decision Reasoning Format (DRF) - A vendor-neutral, machine-readable YAML/JSON format for representing decisions with explicit reasoning, assumptions, cognitive state, and trade-offs. Complements ADRs by adding structured, validatable reasoning to decision documentation.

View this README on GitHub

Recommended Tools

Try a different keyword or remove a filter.

Install

npx skillfish add architecture-decision-record/architecture-decision-record