---
type: JS Module
title: fix-worker.mjs
resource: npm/rules/doc-files/check/fix-worker.mjs
docgen:
  crc: 3e7b265a
  model: omlx/gemma-4-e4b-it-OptiQ-4bit
  score: 75
---

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

## Поведінка
1. Визначається індекс тест-доказів для поточного робочого каталогу.
2. Фільтруються порушення, які не є "сирітськими документами" (`orphaned-doc`), щоб визначити список застарілих файлів.
3. Для кожного застарілого файлу реєструється його шлях як стійка запис.
4. Якщо знайдені застарілі файли, виконується пакетна генерація документів із відповідною моделлю та tier. Генерація лишається у foreground без автоматичного timeout; heartbeat показує очікування, а користувач може скасувати процес через Ctrl-C.
5. Фільтруються порушення, які є "сирітськими документами" (джерело видалено).
6. Для кожного такого сирітського документа реєструється його початковий стан для забезпечення можливості відкату.
7. Виконується очищення від сирітських документів у каталозі.
8. Повертається список усіх файлів, до яких було застосована зміна.

## Сценарії використання

- `npm/rules/doc-files/tests/fix-worker.test.mjs` (fix-worker — crc-mismatch іде через регенерацію, не через CRC-штамп) — регрес (2026-07-21): застаріла дока НЕ штампується свіжим CRC — ціль передається у runGenerationBatch; scoped violations: генерує лише цілі detector-а, без full-tree re-scan; інваріант: у check немає T0 fix-check.mjs (безумовний CRC-штамп маскував дрейф назавжди)

## Гарантії поведінки
* Застарілі документи, після їх генерації, отримують новий контрольний суму (CRC) та вважаються актуальними, що запобігає їх повторній генерації.
* У разі збою, стійкі записи (згенеровані документи) залишаються, оскільки їхнє додавання є кінцевим станом, що дозволяє частковому відновленню прогресу.
* Видалення сирітських документів здійснюється звичайним механізмом відкату.
* Пакетна генерація зупиняється, якщо перевищено 80% від загального часового ліміту рунгу, щоб уникнути перевантаження наступних операцій.
