diff --git a/ADR/03-drivers-nfr.md b/ADR/03-drivers-nfr.md index 692d629..226d90c 100644 --- a/ADR/03-drivers-nfr.md +++ b/ADR/03-drivers-nfr.md @@ -39,4 +39,3 @@ Текущие ограничения: - в режиме `async` устойчивость записи зависит от здоровья Celery worker/broker; - SQL-ветка percentile зависит от СУБД (PostgreSQL/не-PostgreSQL fallback); -- отдельный нагрузочный benchmark-артефакт не приложен. diff --git a/ADR/08-verification.md b/ADR/08-verification.md deleted file mode 100644 index 6fa248f..0000000 --- a/ADR/08-verification.md +++ /dev/null @@ -1,21 +0,0 @@ -# 8. Проверяемость - -## Базовый набор - -1. `cd src/backend && just --list` -2. `cd src/backend && just test` -3. `cd src/backend && just test-coverage && just show-coverage` - -## Точечные проверки по доменам - -1. `cd src/backend && uv run python manage.py test apps.decision.tests.test_decide` -2. `cd src/backend && uv run python manage.py test apps.events.tests.test_services tests.integration.test_events` -3. `cd src/backend && uv run python manage.py test apps.reports.tests.test_reports apps.guardrails.tests.test_guardrails` -4. `cd src/backend && uv run python manage.py test apps.reviews.tests.test_reviews_policy apps.experiments.tests.test_services` -5. `cd src/backend && uv run python manage.py test apps.conflicts.tests.test_conflicts apps.notifications.tests.test_notifications apps.learnings.tests.test_learnings` - -## Runtime - -- `GET /health` -> `200` -- `GET /ready` -> `200` после готовности зависимостей -- `GET /metrics` -> есть инфраструктурные и бизнес метрики diff --git a/ADR/README.md b/ADR/README.md index 0520564..98f7fe4 100644 --- a/ADR/README.md +++ b/ADR/README.md @@ -11,6 +11,5 @@ | `05-critical-path.md` | Критичный поток `decide -> event -> report/guardrail` | | `06-operations.md` | Эксплуатация и наблюдаемость | | `07-simplifications.md` | Явные упрощения | -| `08-verification.md` | Как проверять критерии | Связанная матрица соответствия: [compliance-matrix.md](../compliance-matrix.md). diff --git a/README.md b/README.md index 8bcb06c..ba1128b 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ Service for managing A/B testing experiments. Drive your tests without breaking ## 🎨 Artifacts -### ADR +### ADR (Architecture Decision Record) [ADR](./ADR/README.md) @@ -70,7 +70,7 @@ Yep, artifacts content is written in Russian, but all other docs are in English, #### Warning -Please note that by default containers will use ports 80 (reverse proxy) and range 14601-14611 (for direct access to containers), so there is must be no listeners on this ports range. You can customize the ports in [.env.template](./.env.template). +Please note that by default containers will use port 80 (reverse proxy), so there is must be no listeners on this ports range. You can customize the ports in [.env.template](./.env.template). #### 0. Prerequisites @@ -179,8 +179,10 @@ SMTP can be enabled with `SMTP_ENABLED=true` and SMTP env settings (see `RUNBOOK - Notifications - +Email: ![Mail](./assets/images/email_notifications.png) + +Telegram: ![Telegram](./assets/images/telegram_notifications.png) - Learnings Library diff --git a/compliance-matrix.md b/compliance-matrix.md index 6a643eb..5c90c81 100644 --- a/compliance-matrix.md +++ b/compliance-matrix.md @@ -6,8 +6,8 @@ | ID задания | ID критерия | Проблема/риск | Где реализовано | Как проверяется | Какие данные нужны | Статус | |---|---|---|---|---|---|---| -| `D.4` | `B1-1` | Без предусловий жюри не сможет воспроизвести запуск | `RUNBOOK.md`, `src/backend/README.md` | Ручная проверка разделов предусловий | Python, uv, just, рабочая директория `src/backend` | подтверждено | -| `D.4` | `B1-2` | Неоднозначные команды старта ломают проверку | `RUNBOOK.md`, `src/backend/justfile` | `cd src/backend && just --list` | Доступ к `just` | подтверждено | +| `D.4` | `B1-1` | Без предусловий жюри не сможет воспроизвести запуск | `RUNBOOK.md`, `src/backend/README.md` | Ручная проверка разделов предусловий | Python, uv, just, docker-compose, рабочая директория `src/backend` | подтверждено | +| `D.4` | `B1-2` | Неоднозначные команды старта ломают проверку | `RUNBOOK.md`, `src/backend/justfile` | `cd src/backend && just --list` или запуск через `docker compose` | Доступ к `just`, `docker-compose` | подтверждено | | `D.3` | `B1-3` | Скрытые ручные шаги делают запуск невоспроизводимым | `RUNBOOK.md`, `compose.yaml`, `compose.prod.yaml` | Полный прогон по runbook на стенде | Чистое окружение и runtime-сервисы | частично (live-demo) | | `3.7` | `B1-4` | Сервис может стартовать, но быть неготовым к запросам | `src/backend/api/urls.py` (`/health`, `/ready`) | Runtime `curl /health` и `curl /ready` | Поднятый backend и зависимости | частично (live-demo) | | `D.5` | `B1-5` | Без e2e happy-path нельзя доказать работоспособность | `src/backend/tests/integration/test_happy_path.py`, `src/backend/tests/integration/test_api_contract.py` | `cd src/backend && just test` | Тестовые фикстуры и встроенный test DB | подтверждено | @@ -58,8 +58,8 @@ | `D.5(B10)` | `B10-1` | Отсутствие автоматического линтинга снижает качество | `src/backend/justfile`, `src/backend/pyproject.toml`, `.gitlab-ci.yml` | `cd src/backend && just lint` | Dev dependencies | подтверждено | | `D.5(B10)` | `B10-2` | Отсутствие форматирования повышает шум в diff | `src/backend/justfile`, `src/backend/pyproject.toml`, `.gitlab-ci.yml` | `cd src/backend && just format` | Dev dependencies | подтверждено | | `7` | `FX-1` | Без рабочего сценария уведомления бесполезны | `src/backend/apps/notifications/*`, `src/backend/api/v1/notifications/*` | `cd src/backend && uv run python manage.py test apps.notifications.tests.test_notifications api.v1.notifications.tests.test_notifications_api` | Notification channels/rules/log fixtures | подтверждено | -| `7` | `FX-2` | Нужны явные ограничения по каналам и шумоподавлению | `ADR/07-simplifications.md`, `ADR/04-decisions.md`, `src/backend/apps/notifications/services.py` | Сверка docs и реализации rate-limit/dedup | Документация + код notifications | подтверждено | +| `7` | `FX-2` | Нужны явные ограничения по каналам и шумоподавлению | `ADR/07-simplifications.md`, `ADR/04-decisions.md`, `src/backend/apps/notifications/services.py` | Сверка документации и реализации rate-limit/dedup | Документация + код notifications | подтверждено | | `9` | `FX-1` | Без рабочего knowledge base повторяются эксперименты | `src/backend/apps/learnings/*`, `src/backend/api/v1/learnings/*` | `cd src/backend && uv run python manage.py test apps.learnings.tests.test_learnings api.v1.learnings.tests.test_learnings_api` | Learning fixtures, experiments, tags | подтверждено | -| `9` | `FX-2` | Нужны явные ограничения алгоритма похожести | `ADR/07-simplifications.md`, `ADR/04-decisions.md`, `src/backend/apps/learnings/services.py` | Сверка docs и реализации similarity scoring | Документация + код learnings | подтверждено | +| `9` | `FX-2` | Нужны явные ограничения алгоритма похожести | `ADR/07-simplifications.md`, `ADR/04-decisions.md`, `src/backend/apps/learnings/services.py` | Сверка документации и реализации similarity scoring | Документация + код learnings | подтверждено | | `11` | `FX-1` | Без резолва конфликтов метрики неинтерпретируемы | `src/backend/apps/conflicts/*`, `src/backend/api/v1/conflicts/*`, `src/backend/apps/decision/services.py` | `cd src/backend && uv run python manage.py test apps.conflicts.tests.test_conflicts api.v1.conflicts.tests.test_conflicts_api` | Эксперименты в доменах с policy `mutual_exclusion/priority` | подтверждено | -| `11` | `FX-2` | Нужны явные границы конфликтных политик | `ADR/07-simplifications.md`, `ADR/04-decisions.md`, `src/backend/apps/conflicts/services.py` | Сверка docs и `resolve_domain_conflict` | Документация + код conflicts | подтверждено | +| `11` | `FX-2` | Нужны явные границы конфликтных политик | `ADR/07-simplifications.md`, `ADR/04-decisions.md`, `src/backend/apps/conflicts/services.py` | Сверка документации и `resolve_domain_conflict` | Документация + код conflicts | подтверждено |