# 🚀 Muudatused — инструкция для другого ИИ

Короткая практическая инструкция, как ИИ должен работать с экраном **Muudatused** в этом проекте.

## 1) Что это такое

`🚀 Muudatused` — журнал деплоев (не git-история).  
Одна запись = один факт изменения на local/prod с пояснением и ссылкой на документ.

Основные поля:
- `Sisukord` — что поменяли и зачем.
- `Failid` — какие файлы затронуты.
- `SHA` — commit (если есть).
- `Link` — ссылка на пояснение/макет (`/docs/muudatused/*.html`).
- `Local / Git / Prod` — где изменение реально присутствует.

---

## 2) Когда добавлять запись

ИИ должен добавить запись:
- после реального deploy на prod (`scp` + restart API при backend-изменениях),
- после существенного локального изменения (если это важно зафиксировать),
- при правке логики, которую потом будут проверять админы через CRM.

Не добавлять шумовые записи для мелких тестовых действий.

---

## 3) Где хранятся данные

- API: `api/routes/deploys.js`
- Логика/схема: `api/lib/deployLog.js`
- CLI: `api/scripts/record_deploy.js`
- UI: `index.html` (экран Muudatused)
- Таблица БД: `deploy_log`

---

## 4) Предпочтительный поток для ИИ

1. Сделать изменение.
2. Задеплоить файлы.
3. Если менялся backend (`api/**`) — перезапустить `pm2 restart tcs-crm-api`.
4. Добавить запись в Muudatused:
   - через `record_deploy.js` (предпочтительно), или
   - через форму в CRM (если ИИ работает через UI).

---

## 5) Команда записи (предпочтительно)

```bash
node api/scripts/record_deploy.js \
  --summary "Kinnitused: dashboard widget fix for NaN date parsing" \
  --files "index.html,api/lib/confirmPendingGov.js" \
  --link "/docs/muudatused/dashboard-kinnitused-bubbles.html" \
  --link-title "Dashboard Kinnitused bubble" \
  --git
```

Примечания:
- `--git` подставляет текущий `HEAD` в `SHA`.
- Для ссылок использовать в первую очередь `/docs/muudatused/*.html`.
- `DEPLOY_SECRET` должен быть задан в `api/.env` (локально и на prod).

---

## 6) Формат хорошего `Sisukord`

Шаблон:

`<экран/фича>: <какая проблема> → <что сделали> (+ ключевой эффект)`

Примеры:
- `Arved: month list limit 200 → configurable 5000, cancelled excluded by default`
- `Probleemid: monthly debt rollup fixed for consolidated invoices with correction`
- `Kinnitused: pending-gov deadline NaN bug fixed (ISO date parsing)`

---

## 7) Правила для `Link`

Если изменение имеет макет/объяснение:
1. Сделать HTML-файл в `docs/muudatused/`.
2. Указать `--link "/docs/muudatused/<file>.html"`.
3. Указать понятный `--link-title`.

Если ссылки нет — это допустимо, но для UI/UX и сложной логики ссылка желательна.

---

## 8) Мини-чеклист перед записью

- [ ] Изменение действительно задеплоено туда, где отмечается `Prod`.
- [ ] Список файлов в `Failid` соответствует факту.
- [ ] `Sisukord` объясняет **почему/эффект**, а не только «changed file».
- [ ] Если есть макет/док — заполнен `Link`.
- [ ] Не дублируется уже существующая запись с тем же смыслом.

---

## 9) Частые ошибки

- Запись сделали, но deploy не сделали.
- `Prod=1`, хотя backend не перезапускали после изменения API.
- В `Failid` попали лишние/чужие файлы.
- `Link` указывает на Canvas-путь (`.canvas.tsx`) вместо web-доступного HTML.

---

## 10) Быстрая проверка результата

Открыть в CRM:
- `🚀 Muudatused`
- убедиться, что новая запись вверху,
- `Link` открывается,
- `Local/Git/Prod` выставлены корректно.

