An [Architectural Decision (AD)](https://en.wikipedia.org/wiki/Architectural_decision) is a justified software design choice that addresses a functional or non-functional requirement that is architecturally significant. An [Architecturally Significant Requirement (ASR)](https://en.wikipedia.org/wiki/Architecturally_significant_requirements) is a requirement that has a measurable effect on a software system’s architecture and quality. An [Architectural Decision Record (ADR)](https://adr.github.io/) captures a single AD and its rationale; the collection of ADRs created and maintained in a project constitute its _decision log_. All these are within the topic of Architectural Knowledge Management (AKM), but ADR usage can be extended to design and other decisions (“any decision record”). [Architectural Decision Records](https://adr.github.io/) are very similar to [Conjecture Records](Conjecture%20Records.md). Typically, when creating ADRs or Conjecture Records, you will at some point also want to create a [Design Documents](Design%20Documents.md) for your project, too. [adr-tools](https://github.com/npryce/adr-tools) is a command-line interface to manage a **decision log**. See the [Architectural Decision Record Template](Architectural%20Decision%20Record.md) to understand the structure of an ADR.