---
type: JS Module
title: fix-run-shellcheck.mjs
resource: npm/rules/text/run-shellcheck/fix-run-shellcheck.mjs
docgen:
  crc: 190ecdc3
  model: openai-codex/gpt-5.5
  score: 90
  issues: internal-name:runShellcheckText,judge:inaccurate:0.98
  judgeModel: openai-codex/gpt-5.4-mini
---

## Огляд

Файл описує T0-autofix для `text/run-shellcheck`: публічна функція `patterns` визначає факт, що `shellcheck` знайшов порушення, без per-violation деталей. Повторний аналіз і цикл `shellcheck -f diff` + `patch` делеговано `runShellcheckText`, тому цей файл лишається read-only і не виконує записів у ФС. Він існує, щоб безпечно під’єднати shellcheck-автовиправлення до механізму T0, fail-safe перехоплювати помилки й повертати порожнє значення замість винятку там, де виправлення недоступне.

`listShellScriptPaths`/`runShellcheckText` і їхні приватні залежності перенесені сюди з видаленого `main.mjs`: read-only detector-бік того самого концерну портовано у native (`crates/rules-core/src/concerns/text_run_shellcheck.rs`), а write-режим (авто-фікс через `shellcheck -f diff` + `patch -p1`) лишився винятково в цьому файлі.

## Поведінка

1. `patterns` оголошує автономне T0-виправлення для порушень `shellcheck`.

2. Виправлення запускається лише тоді, коли серед знайдених порушень є проблема, позначена як `shellcheck`.

3. Якщо в робочій теці немає shell-скриптів, виправлення завершується без змін.

4. Перед автозастосуванням правок фіксується поточний вміст знайдених shell-скриптів, щоб після виконання визначити, які файли реально змінилися.

5. Автовиправлення делегує повний цикл повторного аналізу та застосування patch-правок самому shellcheck-сценарію, тому окремі деталі кожного порушення тут не обробляються.

6. Після виконання порівнюється стан файлів до й після виправлення; зміненими вважаються лише файли з відмінним вмістом.

7. Для змінених файлів реєструється факт запису та повертається повідомлення з кількістю виправлених файлів.

8. Якщо shellcheck не вніс змін або читання окремого файлу неможливе, результат залишається безпечним: виняток назовні не передається, а файл не вважається зміненим без підтвердженої різниці.

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

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