Architecture Decision Records
ADR — короткие документы, фиксирующие контекст, решение и последствия каждого значимого архитектурного выбора. Хранятся вечно: даже устаревшее решение объясняет, почему система устроена именно так.
Навигация по доменам
🔧 Общее
| № | Название | Статус |
|---|---|---|
| 0001 | Record architecture decisions — ведение ADR в docs/adr | Accepted |
🏭 Manufacture — Производство
| № | Название | Статус |
|---|---|---|
| 0002 | Производственный календарь isdayoff API | Accepted |
| 0003 | Оплата по календарю без переработок и выходных | Accepted |
| 0004 | Адаптер производственного календаря | Accepted |
| 0005 | Интеграция расчёта смен type=4 | Accepted |
| 0023 | Аудит: расчёт и начисление KPI на backend | Accepted |
| 0040 | Веса в KPIMetric и тип оплаты «Оклад + KPI» | Proposed |
| Kpi | KPI — справочник метрик (0024–0039), критерии и формулы | Accepted |
⚖️ Legal Dossier — Юридическое досье
| № | Название | Статус |
|---|---|---|
| 0006 | Выделение юридического досье в отдельное приложение | Accepted |
| 0007 | Структура моделей данных | Accepted |
| 0008 | Workflow через Service Layer | Accepted |
| 0009 | Автоматический риск-скоринг | Accepted |
| 0010 | Справочники через Django Fixtures | Accepted |
| 0011 | REST API Design | Accepted |
| 0012 | Модель прав доступа | Accepted |
| 0013 | Соответствие 115-ФЗ и налоговой осмотрительности | Accepted |
| 0014 | Версионирование заключений | Accepted |
| 0015 | SLA и сроки обработки | Accepted |
📄 Document — Документооборот
| № | Название | Статус |
|---|---|---|
| 0016 | Анализ плана закупок в ответе API | Accepted |
| 0017 | Выполнение по позициям cap 100% | Accepted |
| 0018 | Экономия: формула supply vs we_buy | Accepted |
| 0019 | Сервисный слой ProcurementPlanAnalysis | Accepted |
| 0020 | Prefetch при фильтре procurement_plan | Accepted |
| 0021 | Метрики и рекомендации для финансового директора | Accepted |
📬 Appeals — Обращения
| № | Название | Статус |
|---|---|---|
| 0022 | Модуль обращений и корреспонденции | Accepted |
🤝 Counterparty — Контрагенты
| № | Название | Статус |
|---|---|---|
| 0041 | Статистика возвратов по контрагентам (рейтинг A/B/C) | Accepted |
Как читать ADR
Каждый файл содержит разделы:
- Title / Date / Status — когда принято и действует ли
- Context — проблема и условия, при которых принималось решение
- Decision — что именно решили
- Consequences — что даёт решение, какие появились ограничения
- (опционально) Обоснование, Альтернативы, Ссылки на код
Как добавить новый ADR
Из корня репозитория narmak_v2 (где лежит .adr-dir):
bash
# Создать новый ADR — следующий свободный номер присваивается автоматически
adr new "Краткое название решения"
# Создать ADR, заменяющий предыдущий (укажите номер заменяемого)
adr new -s 22 "Новое решение вместо ADR-022"
# Список всех ADR
adr listПосле создания нового ADR добавьте файл в wowx_user_documentation/adr/ и обновите сайдбар в .vitepress/config.mts.
Установка adr-tools
bash
# macOS
brew install adr-tools
# Проверка
adr helpРасположение исходников в бэкенде
Старые ADR хранились прямо в приложениях. Сейчас они перенесены сюда, в приложениях остались заглушки-ссылки:
backend/narmak_v2/app/manufacture/ADR.mdbackend/narmak_v2/app/legal_dossier/ADR.mdbackend/narmak_v2/app/document/ADR.md
см. также
- Обзор архитектуры проекта — общая архитектура системы
- Техническая Backend — Django, PostgreSQL, Celery
- Техническая Frontend — Angular, Nx, Akita
- Глоссарий — термины и определения