---
docgen:
  source: npm/scripts/lib/root-notice.mjs
  crc: 5f3ca2bb
---

# root-notice.mjs

## Огляд

Цей файл вставляє root-guard preflight для скілів, які змінюють проєкт у поточному каталозі. Він забезпечує, що скіл виконується in-place, без ізоляції worktree, і використовується для випадків, коли не потрібна ізоляція worktree. Це гарантує коректне виконання скілу від імені проєкту.

## Поведінка

ROOT_START: вставляє маркер початку root-блоку.
ROOT_END: вставляє маркер кінця root-блоку.
injectRootNotice: вставляє, оновлює або видаляє root-guard блок у вмісті `SKILL.md` на основі параметра `enabled`.

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

- ROOT_START — Позначає початок блоку root.
- ROOT_END — Позначає кінець блоку root.
- injectRootNotice — Змінює вміст `SKILL.md` щодо root-guard блоку.

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

- Якщо `requireRoot: true` у `meta.json`, то поточний робочий каталог є коренем проєкту.
- Якщо `requireRoot: false`, то блок не вставляється.
- Вставка відбувається лише між маркерами.
- Вставка ре-синк ідемпотентно: наявний блок замінюється.
- `ROOT_START` викликається перед вставкою блоку.
- `ROOT_END` викликається після вставки блоку.
- `injectRootNotice` викликається під час вставки блоку.
- Немає кешування.
