# run-standard-rule.mjs

## Огляд

Цей файл забезпечує публічний інтерфейс для оркестрування правил. Він обігріває виклик `discoverOneRule` до виконання правил, керуючи їхнім виконанням на основі контексту та політики. Це централізована точка інтеграції для запуску правил, забезпечуючи дедуплікацію та кешування для оптимізації продуктивності.

## Поведінка

1.  Отримує шлях до директорії правила.
2.  Визначає ідентифікатор правила з назви директорії.
3.  Отримує дані правила з директорії правила.
4.  Отримує або створює кеш для прогону.
5.  Запускає виконання правила, використовуючи отримані дані та кеш.
6.  Забезпечує унікальний лок для паралельного запуску правила.
7.  Повертає код успіху (0) або код помилки (1) в залежності від результатів виконання правила.

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

- Виконання правил інкапсулює логіку `discoverOneRule` та `runRule`.
- Виконання правил відбувається всередині блоку `withLock`.
- Виконання правил дедублюється на основі стану git-дерева.
- Різні правила можуть виконуватися паралельно.
- Кеш використовується для зберігання результатів виконання правил в межах одного прогону.
- Не допускається локальна логіка всередині правил. Розширення поведінки реалізується через опції контексту.
