Технический долг в легаси-коде: как «Совкомбанк Технологии» отдала рефакторинг ИИ-агенту
Технический долг (technical debt), то есть накопленные компромиссы в коде, которые замедляют разработку, копится в любом проекте, но в легаси-системах российских компаний его объём часто делает ручной рефакторинг экономически невозможным, и команда «Совкомбанк Технологии» показала, как переложить рутину на ИИ.

Опыт реальной банковской команды доказывает: ИИ полезен не только для новых проектов и прототипов, но и для систематического рефакторинга легаси-кода, если дать модели жёсткие правила вместо размытого «перепиши нормально».
Ира, лид группы проектов в «Совкомбанк Технологии», описала в корпоративном блоге компании, как её команда закрывает технический долг на фронтенд-проекте с несколькими архитектурными эпохами. Проект написан на React, частично переведён на Feature-Sliced Design (FSD, архитектурный стандарт для фронтенда, где код делится на слои по бизнес-смыслу), а остальная часть остаётся легаси. В коде одновременно живут SCSS, CSS Modules, Tailwind с кастомным префиксом, инлайн-стили и устаревшие библиотеки. Именно такой «зоопарк» делает ручной рефакторинг дорогим и рискованным.
Почему «перепиши нормально» ломает продакшен?
Главный тезис статьи: размытый промпт (prompt, текстовая инструкция для ИИ) вроде «перепиши нормально» опасен. Модель может вынести функции, поменять архитектуру, заменить библиотеку, изменить API или переименовать сущности. Для ИИ всё это «рефакторинг», а для рабочей системы каждое действие несёт разный уровень риска. Хуже того, при повторном запросе с тем же размытым заданием модель может принять другое решение.
Команда пришла к выводу: промпты должны быть разбиты на два уровня.
- Правила фиксируют то, что нельзя нарушать: «никогда не изменяй data-testid», «ищи аналоги утилит в src/shared», «используй только SCSS для стилей».
- Повторяемые операции описывают конкретные шаги: зафиксировать поведение тестами, вынести утилиты, разделить крупный JSX, запустить проверки, просмотреть итоговый diff.
Единым источником истины для этих правил стал файл AGENTS.md, который ИИ-агент (agent, программа, способная выполнять цепочку действий без ручного контроля на каждом шаге) читает перед каждой задачей.
Что понадобится
- Легаси-проект на React (или аналогичном фреймворке) с накопленным техническим долгом.
- ИИ-ассистент для кода с поддержкой навыков и файла правил (команда использовала формат AGENTS.md).
- Линтер и тестовый фреймворк, уже настроенные в проекте.
- Доступ к репозиторию и право создавать ветки.
- Время: подготовка AGENTS.md и навыков занимает один-два дня, дальше каждый компонент рефакторится в полуавтоматическом режиме.
Пошаговая инструкция
- Заполните AGENTS.md общими правилами проекта. Опишите стек, структуру папок, пометьте легаси-директории и библиотеки. Укажите стадию миграции (например, «проект переходит на FSD, часть кода уже переведена, остальное требует рефакторинга»). Пропишите соглашения по неймингу, документации JSDoc, тестам, веткам и коммитам.
``` # AGENTS.md — фрагмент ## Legacy - Папки src/old-modules и src/legacy-components помечены как legacy. - Библиотека tf-ui (Tailwind) подлежит замене на SCSS.
## Соглашения - Вместо TypeScript enum используйте as const. - Стили: только SCSS, никакого Tailwind и inline styles. - Не изменяйте data-testid. ```
-
Создайте навыки (skills) для повторяемых операций. Каждый навык описывает одну атомарную задачу с чёткими триггерами «когда запускать» и «когда не запускать».
-
Навык test-first: зафиксируйте поведение до рефакторинга. Он пишет unit-тесты для компонента, чтобы гарантировать, что рефакторинг не сломает логику.
``` # Навык test-first — триггеры Используй, когда: - пользователь собирается отрефакторить компонент - особенно legacy .js или классовый компонент - звучат фразы: «зафиксируй поведение тестами», «покрой тестами до рефакторинга», «защити рефакторинг тестами»
НЕ используй, когда: - пишутся тесты для нового кода - запускается npm test - задаются вопросы о стеке ```
-
Навык tailwind-to-scss-conversion: приведите стили к единому стандарту. В проекте «Совкомбанк Технологий» Tailwind покрывал около 20% кода, и команда решила вернуться к SCSS. Навык автоматически заменяет Tailwind-классы на SCSS-эквиваленты и убирает инлайн-стили.
-
Создайте навык-оркестратор refactor. Он анализирует компонент, составляет план и вызывает нужные навыки в правильном порядке: сначала test-first, потом вынос утилит, разделение компонента, конвертация стилей, финальные проверки.
-
Перед созданием нового навыка проверьте: нельзя ли решить задачу линтером или скриптом? Команда хотела сделать навык для анализа зависимостей в хуках, но линтер справлялся быстрее, точнее и дешевле. ИИ-навыки нужны только там, где действительно требуется «подумать».
-
Просмотрите итоговый diff вручную. Даже с жёсткими правилами модель может внести неожиданные изменения. Финальное ревью остаётся за человеком.
Команда берёт легаси-компонент кнопки, который смешивает Tailwind-классы с префиксом tf-, инлайн-стили и CSS Modules. Оркестратор refactor сначала вызывает test-first и фиксирует текущее поведение тестами. Затем запускается tailwind-to-scss-conversion: Tailwind-классы вроде tf-flex tf-items-center tf-px-4 и строка style={{ minWidth: 120 }} заменяются на SCSS-класс. Линтер проверяет, что data-testid не изменился. Тесты прогоняются повторно. Если всё зелёное, diff уходит на ревью. Компонент приведён к единому стилевому стандарту, поведение подтверждено тестами, ручная работа свелась к проверке diff.
- Размытый промпт. «Перепиши нормально» даёт непредсказуемый результат. Модель может изменить поведение системы, и это пройдёт поверхностное ревью незамеченным.
- Навыки вместо линтеров. Если задачу можно решить автоматическим правилом (проверка зависимостей хуков, сортировка импортов), не тратьте токены ИИ-модели.
- Отсутствие тестов до рефакторинга. Без фиксации текущего поведения вы не узнаете, что именно сломалось после изменений.
- Единовременная миграция всего проекта. Команда «Совкомбанк Технологий» рефакторит компонент за компонентом. Попытка переписать всё разом через ИИ, это тот же «перепиши нормально», только в масштабе репозитория.
Что делать с этим прямо сейчас?
Разработчикам и тимлидам в РФ. Формат AGENTS.md и навыков можно адаптировать под любой стек и любой ИИ-ассистент с поддержкой файлов правил. Структуру из статьи «Совкомбанк Технологий» можно взять как шаблон и заполнить своими соглашениями за день.
Авторам Дзена и контент-маркетологам. Сам принцип «не давайте ИИ размытое задание, разбейте работу на правила и атомарные операции» работает и для текстов. Системный промпт (system prompt, базовая инструкция, которую модель читает перед каждым запросом) с правилами бренда, тона, запрещённых слов, это ваш AGENTS.md для контента.
Предпринимателям. Если ваша команда жалуется, что технический долг растёт, а на рефакторинг нет бюджета, покажите им этот подход. Он не требует покупки отдельного продукта: нужны ИИ-ассистент, уже работающий в команде, и время на описание правил.
Подход «Совкомбанк Технологий» ценен не технологией, а дисциплиной. ИИ здесь не волшебная кнопка, а исполнитель чётко прописанного регламента. По моим наблюдениям, большинство разочарований в ИИ-ассистентах для кода связаны именно с размытыми промптами: люди ждут, что модель сама поймёт контекст проекта, а она каждый раз начинает с чистого листа. Файл AGENTS.md решает эту проблему, но требует усилий на старте. Честная оговорка: команда не привела метрик (на сколько ускорился рефакторинг, сколько багов поймали тесты). Без цифр сложно оценить экономический эффект. Но сама архитектура навыков выглядит воспроизводимой, и это уже достаточный повод попробовать на одном модуле, прежде чем масштабировать.
Хотите писать о технологиях так, чтобы читали?
В dzen.guru мы разбираем, как использовать ИИ для контента, маркетинга и управления проектами. Практика, не теория.
Попробовать dzen.guruКто работает с легаси, тот знает: технический долг не исчезает сам, он только дорожает. Подход с AGENTS.md и атомарными навыками не уберёт его за ночь, но превратит бесконечную задачу «когда-нибудь перепишем» в конвейер, где каждый компонент проходит через одни и те же проверенные шаги.

Основатель dzen.guru. Эксперт по монетизации и продвижению на Дзен. Автор курса «Старт на Дзен 2026».
Читайте также

Grok выбирает республиканцев в 92% случаев, GPT демократов в 97%: исследование Корнелла
Исследование: модели Grok и GPT дают противоположные политические рекомендации в 90% случаев, и причины у них разные Исследовательская студия Convovo при…

SDD наоборот: плагин SlimSpec получает спецификации на сдачу и экономит 35% токенов
Компания Claude Code (Anthropic) получила плагин SlimSpec от независимого разработчика, который переворачивает привычный подход к спецификациям в…

Теория мертвого интернета в цифрах: до 80% контента в отдельных нишах уже пишут нейросети
Производство контента дешевеет с каждым месяцем, и вопрос «сколько вокруг нас настоящего, человеческого» перестал быть философским и стал вполне практическим,…
Комментарии