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
- Related-Document — [связь]
- [External URL] — [что это]
Правила
- Один ADR = одно решение. Не комбинировать.
- Статус меняется со временем: proposed → accepted → возможно deprecated/superseded.
- Alternatives обязательны. Минимум 2 варианта. “Мы не рассматривали альтернативы” — не принимается.
- Consequences честны. Negative обязательны. ADR без минусов = подозрительный.
- Superseded не удаляется. Помечается
superseded_by: ADR-NNNN+ ссылка на новый. - Номера не переиспользуются. ADR-0005 deprecated → номер 0005 навсегда за ним.
Связанные документы
- Decision-Log — индекс всех ADR
- _ADR-Index — альтернативный индекс в 09-Decisions
- Manifesto — принцип “Гипотеза документируется до реализации”