---
docgen:
  source: npm/rules/doc-files/js/lint.mjs
  crc: f25a3bbe
  score: 100
---

# lint.mjs

## Огляд

Адаптер правила doc-files до агрегатора `n-cursor lint`. Дає агрегатору відповідь на одне
питання: чи має кожен дотичний кодовий файл актуальну файлову документацію поряд із собою.

## Поведінка

У quick-фазі отримує список змінених файлів і зводить його до набору джерел для перевірки в
**обидва** боки: змінене джерело перевіряється проти своєї доки, а змінена або видалена дока
(`<dir>/docs/<stem>.md`) повертається до відповідного джерела з тим самим іменем у каталозі над
`docs/`. У ci-фазі (списку немає) обходить усе дерево.

Порушенням вважається відсутня дока (`missing`) або розбіжність контрольної суми джерела з тією,
що записана у frontmatter доки (`crc-mismatch`). Документ із низькою якістю, але свіжою сумою —
не порушення.

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

`lint` — перевіряє документацію для переданого набору змінених файлів (або всього репозиторію,
якщо набір не задано); повертає код виходу `1`, якщо є застарілі чи відсутні доки, інакше `0`.
Список проблемних файлів друкується у stderr із підказкою регенерувати.

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

- Детермінованість: жодного виклику мовної моделі, рішення лише за контрольною сумою.
- Реверс-мапінг доки до джерела перебирає лише кодові розширення і повертає наявний файл-кандидат.
- Порожній набір змінених файлів дає код `0` без обходу дерева.
