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

# lint.mjs

## Огляд

CLI-команда `lint-doc-files` — детермінований детектор застарілості файлових док. Працює без
мовної моделі скрізь: локально, в hook'ах і в CI.

## Поведінка

Без прапорців або з переліком шляхів робить повний чи точковий детект і повертає код `1`, якщо є
застарілі/відсутні доки. `--missing-only` звужує до самих відсутніх. `--json` друкує машинний
лістинг усіх кандидатів зі станом і завершується кодом `0`. Режими `--hook`, `--git` і
`--degraded` делегуються детектору hook-протоколу (PostToolUse за одним файлом зі stdin, Stop-гейт
за зміненими у задачі джерелами з порогом, інформаційний звіт про доки нижчої якості).

Повний прогін серіалізується спільним локом під ключем, виведеним зі шляху каталогу, тож паралельні
запуски не накладаються; hook-форми навмисно виконуються без локу заради завжди-свіжого вердикту.

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

`runLintDocFilesCli` — точка входу команди: маршрутизує між делегатом hook-протоколу, JSON-лістингом
і повним/точковим детектом; повертає код виходу.
`runLintDocFilesSteps` — сама робота повного чи точкового детекту, придатна для прямого виклику з
тестів без локу; повертає `1` за наявності застарілих док, інакше `0`.

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

- Неіснуючий корінь дає зрозумілу помилку і код `1`.
- Повний прогін — код `1` (конвенція `lint-*`); hook/git — код `2` (blocking feedback для Claude Code).
- Жодних викликів мовної моделі.
