Skip to content

YAML Frontmatter

The frontmatter MUST be enclosed in YAML document markers (---) at the beginning of the file.

---
# Frontmatter content
---

The following fields MUST be present in every Structured MADR document:

  • Type: string
  • Description: A short, descriptive title for the decision
  • Constraints:
    • MUST be non-empty
    • SHOULD be 60 characters or fewer
    • SHOULD use title case
title: "Use PostgreSQL for Primary Storage"
  • Type: string
  • Description: A one-sentence summary of the decision
  • Constraints:
    • MUST be non-empty
    • SHOULD be 160 characters or fewer
description: "Decision to adopt PostgreSQL as the primary database for the application"
  • Type: string
  • Description: Document type identifier
  • Constraints:
    • MUST be exactly "adr"
type: adr
  • Type: string
  • Description: The category of decision
  • Constraints:
    • MUST be non-empty
    • RECOMMENDED values: architecture, api, security, performance, infrastructure, migration, integration, data, testing
category: architecture
  • Type: array of strings
  • Description: Keywords for categorization and search
  • Constraints:
    • MUST contain at least one tag
    • Tags SHOULD be lowercase with hyphens for multi-word tags
tags:
- database
- postgresql
- storage
  • Type: string (enum)
  • Description: Current status of the decision
  • Allowed Values:
    • proposed - Decision is under consideration
    • accepted - Decision has been approved and is in effect
    • deprecated - Decision is no longer recommended
    • superseded - Decision has been replaced by another ADR
  • Constraints:
    • MUST be one of the allowed values
status: accepted
  • Type: date
  • Description: Date the ADR was created
  • Format: ISO 8601 date (YYYY-MM-DD)
created: 2025-01-15
  • Type: date
  • Description: Date the ADR was last modified
  • Format: ISO 8601 date (YYYY-MM-DD)
  • Constraints:
    • MUST be greater than or equal to created
updated: 2025-01-20
  • Type: string
  • Description: The author or team responsible for the decision
  • Constraints:
    • MUST be non-empty
author: Architecture Team
  • Type: string
  • Description: The project this decision applies to
  • Constraints:
    • MUST be non-empty
    • SHOULD be a consistent identifier across all project ADRs
project: my-application

The following fields MAY be present:

  • Type: array of strings
  • Description: Technologies referenced or affected by this decision
technologies:
- postgresql
- rust
- tokio
  • Type: array of strings
  • Description: Intended readers of this ADR
  • RECOMMENDED values: developers, architects, operators, stakeholders
audience:
- developers
- architects
  • Type: array of strings
  • Description: Filenames of related ADRs
  • Constraints:
    • SHOULD be relative filenames within the same ADR directory
related:
- adr_0001.md
- adr_0005.md