Observed since 20 Oct, 19:49 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
This Python script is designed to help software development teams document their architecture decisions using Architecture Decision Records (ADRs).
Shout to excellent adr-tools project on which
ADR-pyis based on
This Python script is designed to help software development teams document their architecture decisions using Architecture Decision Records (ADRs). ADRs are a lightweight and effective way to capture important decisions made during the design and development of a software system, and to keep track of their rationale and implications over time.
The script creates ADR files in a predefined format, following the principles of Michael Nygard's ADR template. Each ADR file is a Markdown document with a unique name that includes a sequential number and a title, which is automatically generated based on the information provided by the user.
pip install adrUsage:
$ adr [OPTIONS] COMMAND [ARGS]...
Options:
--install-completion: Install completion for the current shell.--show-completion: Show completion for the current shell, to copy it or customize the installation.--help: Show this message and exit.Commands:
init: Initialize ADR directory with first ADR in given PATHnew: Create new ADR with given NAMEADR-py works in ordinary documentation repositories. If no path is supplied and no configuration is found, ADRs are created in the current working directory.
The configuration search order is:
adr init.--config..adrpy.toml in the current working directory.[tool.adrpy] in the current working directory's pyproject.toml.For a non-Python documentation repository, create .adrpy.toml:
dir = "docs/adr"
The same file can be supplied to both commands:
$ adr init --config .adrpy.toml
$ adr init --config .adrpy.toml --status proposed --tag architecture --tag process
$ adr new --config .adrpy.toml "Use PostgreSQL" --status proposed --tag database --tag persistence
Generated ADRs start with YAML front matter containing an immutable UUID id, a numeric ordinal, title, status, ISO date, a list of tags, and UUID relationship fields supersedes and superseded_by. New ADRs default to proposed; pass --status to select another allowed status and repeat --tag for multiple tags. The front matter is intentionally machine-readable while the Markdown body remains editable in any text editor.
initInitialize ADR directory with first ADR in given PATH
Usage:
$ adr init [OPTIONS] [PATH]
Arguments:
[PATH]: Path in where ADRs should reside. If not provided Path will be extracted from pyproject.tomlOptions:
--help: Show this message and exit.
--status: Initial status; defaults to proposed.
--tag: Tag to add; repeat for multiple tags.
newCreate new ADR with given NAME
Usage:
$ adr new [OPTIONS] NAME
Arguments:
NAME: Name of new ADR. Longer names (with spaces) should be put in quotation marks. [required]Options:
adr --help: Show this message and exit.
--status: Initial status; defaults to proposed.
--tag: Tag to add; repeat for multiple tags.
The generated ADR files follow the template proposed by Michael Nygard in his book "Documenting Architecture Decisions." The template consists of the following sections:
Using ADRs has several benefits for software development teams, including:
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.5.0 | 24 Aug 2026 | 5 |
This describes our collected data; it is not a security assessment.
Observed since 20 Oct, 19:49 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:be824f1480966b9c1791793979d1dcac6615a6e0bc6fd9ed9faeddcd957bc11d