Architecture Decision Records management tool
Project description
dark-madr
A Python CLI for managing Architecture Decision Records.
Compatible with adr-tools workflow. Supports Nygard and MADR templates.
For background on ADRs, see the included paper: Using ADR on GitHub
Installation
pip install dark-madr
For development:
uv sync
uv pip install -e .
Usage
# Initialize ADR directory
adr init
# Create a new ADR
adr new "Use PostgreSQL for primary database"
# List all ADRs
adr list
# Show a specific ADR
adr show 1
# Supersede an existing ADR
adr new "Use PostgreSQL 15" --supersedes 1
# Generate table of contents
adr generate toc
Configuration
Configure defaults in pyproject.toml:
[tool.adr]
dir = "docs/decisions"
template = "madr"
default_status = "proposed"
default_authors = ["Architecture Team"]
Initialize configuration:
adr init-config
adr config # view current settings
Commands
| Command | Description |
|---|---|
adr init |
Initialize ADR directory with first ADR |
adr new <title> |
Create a new ADR |
adr list |
List all ADRs |
adr show <number> |
Display an ADR |
adr generate toc |
Generate table of contents |
adr templates |
List available templates |
adr config |
Show current configuration |
adr init-config |
Add config section to pyproject.toml |
Options
adr new "Title" --template madr # Use specific template
adr new "Title" --status accepted # Set initial status
adr new "Title" --supersedes 3 # Supersede ADR-0003
adr --adr-dir ./docs list # Override ADR directory
Templates
Two built-in templates:
- nygard (default) - Michael Nygard's original format
- madr - Markdown Any Decision Records format
View template structure:
adr help-template nygard
adr help-template madr
Custom templates can be added to a directory specified by template_dir in config.
Development
uv sync --all-extras
uv run pytest
uv run mypy src/
uv run ruff check src/
References
- Documenting Architecture Decisions - Michael Nygard
- Lightweight ADRs - ThoughtWorks Tech Radar (Adopt, Nov 2017)
- adr-tools - Nat Pryce
- MADR - Markdown Any Decision Records
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dark_madr-0.1.2.tar.gz.
File metadata
- Download URL: dark_madr-0.1.2.tar.gz
- Upload date:
- Size: 101.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ab0924b1205b65e82f29bcb8156e4c8a4848896284ae54cee3c1a12d4f7e92d1
|
|
| MD5 |
0f85808809dc8f36e06abd4b02cf0c69
|
|
| BLAKE2b-256 |
89f1f72d933a13efd3ff54839e815cf74f714a205eea778e2348efcea21a34d1
|
File details
Details for the file dark_madr-0.1.2-py3-none-any.whl.
File metadata
- Download URL: dark_madr-0.1.2-py3-none-any.whl
- Upload date:
- Size: 18.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ba59ef3025e6349c82b4a8597415c70e062def5f798d4983b89dd2d0934f08c1
|
|
| MD5 |
7fcc6553b75d553bfe7232d2cac169a7
|
|
| BLAKE2b-256 |
3456c5723565e4e4bb167110275a77642d3ffa0141e679eef39eabc8256e88e7
|