init
Initialize a new ADR repository.
Usage
adrs init [OPTIONS] [DIRECTORY]
Arguments
| Argument | Description |
|---|---|
[DIRECTORY] | ADR directory path (default: doc/adr) |
Options
| Option | Description |
|---|---|
--ng | Use NextGen mode (YAML frontmatter) |
-C, --cwd <DIR> | Working directory |
-h, --help | Print help |
Description
The init command creates:
- A
.adr-dirfile in the current directory containing the ADR directory path - The ADR directory (creates parent directories if needed)
- An initial ADR:
0001-record-architecture-decisions.md
Examples
Basic Initialization
adrs init
Creates:
.adr-dir # Contains "doc/adr"
doc/
adr/
0001-record-architecture-decisions.md
Custom Directory
adrs init decisions
Creates:
.adr-dir # Contains "decisions"
decisions/
0001-record-architecture-decisions.md
Nested Directory
adrs init docs/architecture/decisions
Creates the full directory path.
NextGen Mode
adrs init --ng
Creates the initial ADR with YAML frontmatter:
---
status: accepted
date: 2024-01-15
---
# Record Architecture Decisions
...
Re-initialization
adrs init is idempotent: running it again in an already-initialized
repository succeeds. It rewrites the configuration (for example, to change the
ADR directory or switch modes) and preserves existing ADRs. The initial
"Record architecture decisions" ADR is only created when the repository has no
ADRs yet, so re-initializing will not add a duplicate.