Kimi переносит компонент или модуль с одного фреймворка на другой: сохраняет поведение, переводит идиомы, предупреждает о ловушках версий. Получаешь план миграции и переписанный код.
Перенеси код на другой фреймворк так, чтобы поведение не изменилось, а стиль стал родным для нового.
Откуда и куда: [МИГРАЦИЯ: Flask 2.3 → FastAPI 0.115]
Код: [КОД: приложение из трёх файлов — маршруты, работа с Postgres через psycopg2, JWT-авторизация в декораторе]
Что важно сохранить: [СОХРАНИТЬ: адреса эндпоинтов и формат ответов, их дёргает мобильное приложение]
Что можно менять: [МОЖНО: структуру файлов, синхронный код на асинхронный, способ валидации]
Что нужно:
1. Таблица соответствий: какой приём исходника чем становится в целевом фреймворке. По одной строке
на приём, без объяснений на абзац.
2. Что не переносится напрямую и чем это заменить — с указанием, чем замена отличается по поведению.
3. Переписанный код: идиоматично для нового фреймворка, а не дословный перевод.
4. Чеклист ручной проверки после миграции: что открыть и что нажать, чтобы убедиться, что не сломалось.
5. Что стоит выкинуть по дороге: код, который был нужен только из-за ограничений старого фреймворка.
Отсечка. Не меняй адреса и формат ответов, если в поле СОХРАНИТЬ сказано их держать: мобильное
приложение обновится не завтра. Не тащи слепо структуру старого проекта — если в новом фреймворке
так не пишут, скажи об этом отдельной строкой. Не переводи синхронный код в асинхронный молча:
это меняет поведение при ошибках и требует другой работы с базой, отметь это как изменение.
Не пиши «дальше по аналогии» вместо кода — либо покажи целиком, либо скажи, что не влезло.
Проверка перед выдачей: сверь список эндпоинтов до и после. Совпали адреса, методы и коды ответов —
готово. Разошлось хоть одно — исправь и покажи, где было расхождение.
Собрать под себя — поля заполнены рабочими значениями, меняйте их и промпт выше обновится сам
Пример: классовый компонент Vue 2 с Options API переносится на Vue 3 Composition API. Kimi выдаёт таблицу: data → ref/reactive, watch с deep → watchEffect осторожно, filters удалены — заменить computed. Предупреждает: $children больше нет, глобальная шина событий — через mitt. Переписанный компонент идиоматичный, со setup и типами. Чеклист: проверить порядок хуков, эмиты, слоты. Совет 1: указывайте точные версии — разница между «React 17» и «React 18» меняет половину ответа. Совет 2: мигрируйте по одному компоненту, а не всё приложение разом — Kimi справится и с большим файлом, но проверять лавину изменений будете вы. Совет 3: версии библиотек и API модель может помнить с отставанием — после генерации сверьте ключевые вызовы со свежей документацией.