Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

init

Initialize a new ADR repository.

Usage

adrs init [OPTIONS] [DIRECTORY]

Arguments

ArgumentDescription
[DIRECTORY]ADR directory path (default: doc/adr)

Options

OptionDescription
--ngUse NextGen mode (YAML frontmatter)
-C, --cwd <DIR>Working directory
-h, --helpPrint help

Description

The init command creates:

  1. A .adr-dir file in the current directory containing the ADR directory path
  2. The ADR directory (creates parent directories if needed)
  3. 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.

  • config - Show current configuration
  • new - Create additional ADRs