ИИ в рефакторе или как сделать жизнь иной

Входные данные: Проекту 3 года TypeScript с выключенным strict-mode Около 30 пакетов Типизация делалась по ходу дела

Итог: Нарушены контракты Поломаны типы за пределами пакетов Конфликты данных Дублирование одноименных интерфейсов Бардак

Задача: Поэтапно привести все модули к strict-mode с достаточным покрытием типами и запретом any.

Как я это делал

Я использую открытые сетки для работы: sourcecode, koda, qwen. Не так давно начал работать с cl инструментами: koda-cli, qwen-cli, opencode

Через некоторую серию экспериментов я прошёл к следующему процессу: 1) ИИ делает документацию на каждый файл пакета. Потом это помогает агентам лучше и быстрее решать задачи. Главное генерировать документацию разработчика. 2) ИИ делает концепт эпика: набрасывает план работ и описание лица результата 3) Дробим план на задачи 4) Создаём чек-лист как точку фиксации процесса. В том числе как защиту от окончания токенов. 5) Пишем правила для агента, что он каждую таску фиксировал с чеклисте так, что бы это можно было использовать ему же для продолжения.

Пожалуй самым удивительным для меня было то, как наличие документации меняет поведение агентов. Они буквально начинают понимать код и почти не глючат.

В общем со всеми экспериментами по формированию процесса у меня ушла пара дней на рефактор одного пакета. Обший объём изменений порядка 20 файлов на три пакета. Сам бы я это делал примерно столько же, но лично мне было бы сильно менее комфортно.

Выводы

Не нужно верить агентам на слово. Надо проверять их работу. Не нужно разрешать автокомит (если это не петпроект). Стоит тонко настраивать поле деятельности и разрешения (разберитесь с кофигами для ИИ). Но я смог сделать работу проще для меня: параллельно я домоделил детальку для принтера, потрещал в чатах. Фактически сделал больше, чем мог бы сделать, делай все руками.

А как насчет профессиональной этики?

Порой меня беспокоит вопрос: "А профессионально ли это: выдавать труд ИИ за свой?" Пока склоняюсь к тому, что: если результат выглядит как мой код - профессионально 😁