# Изменения AILab SCRUME Agent

История до 1.7.5 — в `git log` (сообщения коммитов вида `v1.7.5: …`). Здесь ведём план и состав следующего релиза.

---

## 1.7.6 — план (не выпущено)

Тема релиза: **правило периметра данных доводится до работающего механизма, а не остаётся декларацией в промпте.**

Основание — аудит профиля ai-si 05.11.2026. Проверенное состояние:

| Что | Факт |
|---|---|
| `skills/productivity/docx/references/anonymization.md` | процедура полная: тело, таблицы, все `headerN/footerN.xml`, `docProps/core.xml`, `app.xml`, картинки; замена подчёркиваниями; верификация из 3 шагов |
| `skills/productivity/docx/scripts/scan_open_pii.py` | есть, работает (`--summary`, `--header`, `--json`, `--fail-on-open`) |
| `skills/ailab/anonymization-check` | лежит в сборке, **в профиль не ставится** — категории `ailab` в установленном профиле нет |
| `profiles/<p>/hooks/` | **пусто** — принуждения нет |
| `SOUL.md` сборки | про обезличивание, периметр и заказчика — **ни слова** |

Отсюда формулировка «у нас обезличивание до отправки в модель» сегодня не подтверждается: правило записано в скилле, но срабатывает по триггеру и зависит от того, вспомнит ли модель его применить.

### 1. Поставить `ailab/anonymization-check` в профиль при установке и обновлении

- Что: категория `skills/ailab/*` должна попадать в установленный профиль так же, как остальные скиллы; сейчас в профиле её нет.
- Где: механизм установки скиллов (bundle → `~/hermes/skills`), `setup.ps1`, проверка состава после установки.
- Критерий приёмки: после чистой установки и после обновления `ls <профиль>/skills/ailab/anonymization-check` даёт `SKILL.md` и `scripts/scan_open_pii.py`; скилл виден в индексе скиллов агента.
- Причина: скилл, лежащий только в сборке, в работе не участвует. Это главное расхождение между «заявлено» и «есть».

### 2. Правило порядка в `SOUL.md` — и в сборке, и в профиле

Добавить раздел (формулировка для вставки):

```
## Периметр данных

- Документ заказчика (ТЗ, договор, переписка, форма, ИД) не открывается инструментами
  чтения, пока не решено, откуда берётся обезличенная копия: её даёт пользователь
  или агент делает копию и читает только её.
- Читается и разбирается только копия. Оригинал не открывать «чтобы посмотреть объект».
- Таблица соответствия токенов и реальных значений не читается никогда — она и есть
  закрываемые данные.
- Отчёт по проверке полноты обезличивания агент читает в `--summary` (счётчики);
  полный отчёт со значениями — человеку.
- Формулировка «документ обезличен» запрещена. Правильно: «шаблоны нашли N, вот что
  осталось открытым».
```

- Где: `SOUL.md` в сборке (приезжает всем получателям) + `profiles/<p>/SOUL.md` в рабочем профиле (иначе правило не действует у того, кто уже установлен).
- Критерий приёмки: правило есть в обоих файлах; на контрольной задаче («прочитай ТЗ и найди требования») агент сначала спрашивает про обезличенную копию, а не открывает оригинал.
- Ограничение, которое надо написать в релиз-ноутах честно: это по-прежнему правило в промпте. Принуждение — только через hook/шлюз (см. п. 4).

### 3. Журнал применения ИИ — с записями, а не пустая форма

- Что: форма журнала + процедура, при которой запись появляется сама, а не заполняется задним числом «для проверки».
- Минимальный состав записи: дата · задача · сервис · контур · категория данных (🟢/🟡/🔴) · обезличивание выполнено (да/нет, чем подтверждено) · результат перепроверен человеком · кто.
- Куда писать: файл журнала в рабочей папке проекта (CSV/MD), запись — по факту задачи; при инциденте — отдельной строкой в журнал инцидентов.
- Критерий приёмки: после пилота на одной команде в журнале есть не менее 5 реальных записей, каждая с категорией данных и отметкой обезличивания; повторяющаяся операция закрывается одной строкой, без ручного заполнения таблицы каждый раз.
- Причина: в папке «AI безопасность» журнал присутствует только как пустая форма Регламента. Пустая форма — не контроль.

### 4. (Задел, вне объёма 1.7.6) Принуждение на исходящем запросе

Каталог `hooks/` пуст — механизма, физически не дающего уйти оригиналу, нет. Кандидат на следующий релиз: перехват исходящего запроса (hook или шлюз) с прогоном шаблонов ПДн и блокировкой отправки. Перед планированием — проверить, какие события Hermes умеет перехватывать; обещать механизм без проверки нельзя.

### Что НЕ входит в 1.7.6

- Локальная модель / RAG (Ollama + Open WebUI): решения нет, железа нет. Ценность такого контура — только на красной категории, и он снимает риск утечки ценой качества на русском техническом тексте.
- Заполнение Регламента и приказа ООО «СКРАМ ИНЖИНИРИНГ» — организационный слой, отдельная работа вне сборки.

---

## Как выпускается

1. Пункты 1–3 закрыты и проверены на чистой установке, а не только в рабочем профиле.
2. `distribution.yaml` → `version: 1.7.6`; `README.md` → «Текущая версия: 1.7.6».
3. Коммит с сообщением `v1.7.6: <главное изменение>`.
4. Сборка bundle, проверка по разделу «Проверка перед передачей» в README.
