# Реестр критических данных и правила контроля качества

файл 05_critical\_[data.md](http://data.md)

## 1\. Назначение

Данный документ определяет перечень критических данных в Grace CRM, подлежащих обязательной проверке Quality Agent, а также правила контроля качества:

-  допустимые форматы

-  условия полноты

-  логика выявления пробелов

Цель: обеспечить достоверность аналитики и корректную работу Recommendation Agent.

---

## 2\. Принципы контроля качества

-  Проверяются только активные проекты

-  Каждое правило имеет уровень критичности (Critical / Warning)

-  Нарушение Critical -> обязательная эскалация

-  Нарушение Warning -> уведомление без эскалации

---

## 3\. Реестр объектов и полей

### 3\.1 Проекты (itech_projects)

| Поле                | Тип     | Обязательность | Формат     | Правило проверки | Критичность |
|---------------------|---------|----------------|------------|------------------|-------------|
| account_id          | integer | Обязательно    | \>0        | Не NULL          | Critical    |
| project_status_id   | integer | Обязательно    | \>0        | Не NULL          | Critical    |
| probability_percent | integer | Обязательно    | 0–100      | Не NULL          | Critical    |
| forecast_date       | date    | Обязательно    | YYYY-MM-DD | Не NULL, ≥ today | Critical    |
| next_action         | text    | Обязательно    | строка     | Не пусто         | Critical    |
| next_action_date    | date    | Обязательно    | YYYY-MM-DD | ≥ today          | Critical    |
| last_activity_at    | date    | Обязательно    | дата       | ≤ 30 дней        | Warning     |

---

### 3\.2 Контрагенты (itech_accounts)

| Поле        | Тип     | Обязательность | Формат     | Правило проверки | Критичность |
|-------------|---------|----------------|------------|------------------|-------------|
| name        | text    | Обязательно    | строка     | Не пусто         | Critical    |
| inn         | keyword | Обязательно    | 10/12 цифр | regex            | Critical    |
| manager_id  | integer | Обязательно    | \>0        | Не NULL          | Critical    |
| reliability | keyword | Желательно     | enum       | red/yellow/green | Warning     |

---

### 3\.3 Активности / комментарии (itech_comments)

| Поле       | Тип  | Обязательность | Формат | Правило проверки | Критичность |
|------------|------|----------------|--------|------------------|-------------|
| comment    | text | Обязательно    | строка | длина > 10       | Warning     |
| created_at | date | Обязательно    | дата   | не NULL          | Critical    |

---

### 3\.4 Расчёты (itech_calculations)

| Поле               | Тип     | Обязательность | Формат | Правило проверки | Критичность |
|--------------------|---------|----------------|--------|------------------|-------------|
| project_id         | integer | Обязательно    | \>0    | Не NULL          | Critical    |
| calculation_status | keyword | Обязательно    | enum   | Не NULL          | Critical    |
| amount             | double  | Обязательно    | \>0    | \>0              | Warning     |

---

## 4\. Логика выявления пробелов

### 4\.1 Отсутствие обязательных полей

```
IF field IS NULL → ошибка
```

---

### 4\.2 Нарушение бизнес-логики

Примеры:

-  Статус "КП отправлено" -> должен существовать расчёт

-  Есть проект -> должен быть следующий шаг

```
IF status = "КП отправлено" AND calculations = 0 → ошибка
```

---

### 4\.3 Просроченные действия

```
IF next_action_date < today → ошибка
```

---

### 4\.4 Отсутствие активности

```
IF last_activity_at > 30 дней → warning
```

---

## 5\. Расчёт Кк (коэффициента качества данных)

```
Кк=1−(проектысошибками/общееколичествопроектов)
```

Где:

-  ошибка = любое нарушение Critical

---

## 6\. Выход Quality Agent

Формируется реестр:

<table header="row">
<tr>
<td>

Проект

</td>
<td>

Поле

</td>
<td>

Ошибка

</td>
<td>

Ответственный

</td>
<td>

Срок

</td>
</tr>
</table>

---

## 7\. Эскалации

| Условие           | Действие              |
|-------------------|-----------------------|
| Ошибка Critical   | уведомление менеджеру |
| Нет реакции > SLA | эскалация РОП         |
| Повторная ошибка  | эскалация Зам. ГД     |

---

## 8\. Расширение реестра

-  Новые правила добавляются через конфиг

-  Без изменения кода агентов

---