Automation розгортайте сходинками
Надійний hook корисний у повторюваній ситуації, передбачуваний за результатом і простий для вимкнення. Починайте з observation, а не з blocking policy: спочатку потрібно побачити, чи matcher охоплює правильну область.
Non-blocking режим підходить для перших експериментів. Blocking застосовуйте лише для вузького, стабільного й добре перевіреного правила.
| Сходинка | Що робить |
|---|---|
| 1. Log-only | Записує факт спрацювання без змін |
| 2. Non-blocking | Показує легку перевірку або звіт |
| 3. Formatting | Змінює лише дозволений файл formatterʼом |
| 4. Test/report | Запускає недорогу перевірку або нагадує про targeted tests |
| 5. Narrow blocking | Блокує конкретну ризиковану дію |
| 6. Policy-managed | Командний артефакт із документацією та kill switch |
Безпечні перші сценарії
- форматування зміненого файла;
- мʼякий lint або короткий звіт;
- нагадування для чутливого модуля;
- захист окремого шляху;
- банер із правилами на старті сесії.
Baseline для format-on-edit
- Обмежте matcher вихідною директорією.
- Увімкніть log-only і перевірте фактичні шляхи.
- Після кількох безпечних сесій додайте formatter.
- Передавайте formatter лише змінений файл.
- Додайте виключення для generated і snapshot-файлів.
- Залиште handler non-blocking.
- Перевірте звичайний і виключений файл.
after file edit:
if path matches frontend/src/**/*.tsx:
format only this file
if path is generated or snapshot:
exit without changes Коли дозволено blocking
Blocking hook доречний лише коли matcher дуже вузький, правило стабільне, команда розуміє наслідки блокування, а існує простий спосіб тимчасово вимкнути або обійти правило. Помилка такого hook може перервати весь workflow.
Якщо automation заважає, поверніть її на попередню сходинку: звузьте matcher, приберіть blocking або перейдіть до log-only.
Канонічне джерело уроку · JavaRush
Відкрити матеріал JavaRush