A command-line tool for working with a log of Architecture Decision Records (ADRs).
Use the adr
command to manage ADRs. Try running adr help
.
ADRs are stored in a subdirectory of your project as Markdown files. The default
directory is doc/adr
, but you can specify the directory when you initialise
the ADR log.
-
Create an ADR directory in the root of your project:
adr init doc/architecture/decisions
This will create a directory named
doc/architecture/decisions
containing the first ADR, which records that you are using ADRs to record architectural decisions and links to Michael Nygard's article on the subject. -
Create Architecture Decision Records
adr new Implement as Unix shell scripts
This will create a new, numbered ADR file and open it in your editor of choice (as specified by the VISUAL or EDITOR environment variable).
To create a new ADR that supersedes a previous one (ADR 9, for example), use the -s option.
adr new -s 9 Use Rust for performance-critical functionality
This will create a new ADR file that is flagged as superseding ADR 9, and changes the status of ADR 9 to indicate that it is superseded by the new ADR. It then opens the new ADR in your editor of choice.
-
Configure the template.
If the ADR directory contains a file
templates/template.md
, this is used as the template for the new ADR. Otherwise a default template is used or one found with$ADR_TEMPLATE
.export ADR_TEMPLATE=<path to file>
-
For further information, use the built in help:
adr help
See the tests for detailed examples.
The decisions for this tool are recorded as architecture decision records in the project repository.