---
docgen:
  source: npm/rules/adr/js/hooks.mjs
  crc: 3f239faf
  score: 100
---

# hooks.mjs

## Огляд

Файл надає публічну функцію `check` для валідації даних. Код використовує конфігурацію з файлу `.local.json` для визначення логіки. Функція працює у режимі, де невдачі повертають `false` або `null` замість генерації винятків. Повідомлення про події передаються за допомогою маркера (adr.mdc).

## Поведінка

1. Перевірка канонічності скриптів
   Проводиться перевірка наявності та відповідності логіки між скриптами, визначеними в артефактах, і їхніми канонічними версіями. У разі невідповідності повертається сигнал про необхідність повторного синхронізації.

2. Валідація налаштувань проєкту
   Перевіряється наявність файлу `.claude/settings.json` для підтвердження коректності конфігурації відповідно до вимог (adr.mdc).

3. Перевірка конфігурації хуків Cursor
   Перевіряється, чи містить конфігурацію Cursor необхідні стоп-хуки для кожного визначеного скрипта.

4. Перевірка ігнорування логів
   Перевіряється вміст файлу `.gitignore` на відповідність ігнорування кожного лог-файлу хука.

5. Перевірка покриття логів
   Перевіряється, чи покриває конфігурація `.gitignore` всі необхідні лог-файли.

6. Перевірка доступності CLI
   Перевіряється наявність бінарних файлів `claude` або `cursor-agent` у системному PATH. Якщо жодного не знайдено, це інформується як попередження, оскільки хук працюватиме у режимі мовчки.

## Публічний API

check — перевіряє, чи відповідає проєкт вимогам adr.mdc (adr.mdc).

## Гарантії поведінки

- Read-only: файл не виконує операцій запису у файлову систему.
- Перехоплює помилки і не пропускає винятків назовні (fail-safe).
- За невдалої перевірки повертає `false`/`null` замість винятку.
- Свідомо пропускає шляхи: `.git`.
- Не звертається до мережі.
