Template: ADR (Architecture Decision Record)

Скопируй в 09-Decisions/ADR-NNNN-slug.md.

  • NNNN = 4 цифры, инкрементный номер (0001, 0002, …)
  • slug = короткое английское имя через дефис

Frontmatter

---
title: "ADR-NNNN: [Short Decision Title]"
type: adr
id: ADR-NNNN
status: proposed|accepted|deprecated|superseded
date: YYYY-MM-DD
author: [name]
superseded_by: ADR-NNNN  # если superseded
tags: [adr, ...]
---

Секции

Status

[Одно из: proposed | accepted | deprecated | superseded]

Context

[Ситуация + constraints + что нужно решить. 1-2 абзаца. Описывай проблему, НЕ решение.]

Decision

[Что решили. 1-2 предложения. Чёткая формулировка.]

Alternatives Considered

Минимум 2 альтернативы (включая chosen):

Option A: [Name]

  • Pros: [перечислить]
  • Cons: [перечислить]

Option B: [Name]

  • Pros: [перечислить]
  • Cons: [перечислить]

Option C: [Name] ← chosen

  • Pros: [перечислить]
  • Cons: [перечислить]
  • Why chosen: [обоснование — почему этот вариант при этих constraints]

Consequences

Positive:

  • [Плюс 1]
  • [Плюс 2]

Negative / Trade-offs:

  • [Минус 1]
  • [Минус 2]

Mitigations:

  • [Как смягчаем минусы]

Follow-ups

  • [Action item 1]
  • [Action item 2]

References


Правила

  1. Один ADR = одно решение. Не комбинировать.
  2. Статус меняется со временем: proposed → accepted → возможно deprecated/superseded.
  3. Alternatives обязательны. Минимум 2 варианта. “Мы не рассматривали альтернативы” — не принимается.
  4. Consequences честны. Negative обязательны. ADR без минусов = подозрительный.
  5. Superseded не удаляется. Помечается superseded_by: ADR-NNNN + ссылка на новый.
  6. Номера не переиспользуются. ADR-0005 deprecated → номер 0005 навсегда за ним.

Связанные документы

  • Decision-Log — индекс всех ADR
  • _ADR-Index — альтернативный индекс в 09-Decisions
  • Manifesto — принцип “Гипотеза документируется до реализации”