---
name: refactor
description: Безопасный рефакторинг маленькими шагами без изменения поведения. Используй, когда просят отрефакторить, упростить, разделить модуль, убрать дублирование или почистить код.
argument-hint: <файл или модуль> [цель]
---

# Refactor: $ARGUMENTS

Правило №1: **поведение не меняется.**

1. Убедись, что тесты для затрагиваемого кода есть и зелёные. Если тестов нет — сначала напиши характеризационные тесты на текущее поведение и закоммить их.
2. Опиши план: список маленьких шагов (переименование, выделение функции, перенос и т.д.). Каждый шаг оставляет проект рабочим.
3. Выполняй шаги по одному. После каждого:
   - запусти тесты и проверку типов;
   - если красное — откати шаг и попробуй иначе.
4. Не смешивай рефакторинг с новыми фичами и исправлениями багов. Найденные баги — запиши в отчёт.
5. Итог: что изменилось, метрики (строк/функций до и после), найденные баги, что стоит сделать дальше.
