---
type: JS Module
title: main.mjs
resource: npm/rules/doc-files/check/main.mjs
docgen:
  crc: e0ddca33
  model: openai-codex/gpt-5.4-mini
  tier: cloud-min
  score: 100
  issues: judge:error
  judgeModel: openai-codex/gpt-5.4-mini
---

## Огляд

`doc-files`-lint визначає застарілі записи документацій для кожного source-файлу й повертає список таких невідповідностей для `collectStale` та `lint`. Це дозволяє окремо відрізняти застарілі, відсутні й деградовані doc-files, а також сирітські записи в повному репозиторному прогоні. Поведінка fail-safe: помилки не виходять назовні, а за окремих збоїв замість винятку повертається порожнє значення, зокрема `null`.

## Поведінка

collectStale спершу зводить вхід до списку джерельних файлів, на які реально треба дивитися: повний прогін бере готовий результат сканування всієї doc-files поверхні, а при вибірковому запуску співвідносить змінені шляхи з відповідними source-файлами, враховуючи зміни самих док і test-контексту. Далі він повертає лише ті записи, де документація вже не відповідає джерелу: відсутня, застаріла або деградована; помилки під час обходу не пробиваються назовні, а небезпечні або недоступні шляхи просто дають порожній результат у відповідній гілці.

lint перетворює результат collectStale на violations з прив’язкою до source-path і, за наявності знайденого дока, додає його шлях у data. Для репозиторного повного прогону він також додає окремі порушення для сирітських доків, але при scoped-запуску свідомо не робить orphan-scan, щоб не виходити за межі видимого набору файлів. Якщо doc-files не можуть оцінити кандидатів через недоступні плагіни, lint не падає, а додає warn-діагностику з підказкою про встановлення залежностей; у всіх інших випадках повертає лише зібрані порушення.

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

- lint — Detector doc-files: застарілі (CRC-mismatch/missing/degraded) і сирітські файлові доки.
Read-only — генерація/очистка у fix-worker.mjs (docgen), не тут.
- collectStale — збирає застарілі позначення документації для подальшого оновлення, щоб не пропускати файли, які вже не відповідають коду

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

- Власних операцій запису (ФС/БД) у файлі немає; виклики імпортованих модулів можуть писати.
- Перехоплює помилки і не пропускає винятків назовні (fail-safe).
- За певних помилок повертає порожнє значення (напр. `null`) замість винятку.
