Используйте статические типы
Вечные срачи между динамическими и статическими типами обычно сводятся к компромиссу: быстрое прототипирование vs долгосрочная поддерживаемость. LLM'ки сильно меняют расклад — они легко компенсируют boilerplate код и рефакторинг. Так что выбирай соответственно. Тебе понадобится setup, где LLM получает feedback по ошибкам типов после своих изменений — тогда она легко поймет, какие еще файлы нужно обновить при рефакторинге. Только следи за расходом токенов.
К сожалению, тренировочный корпус сильно перекошен в сторону Python'а и JavaScript'а. Их типизированные варианты (TypeScript, mypy) работают, но поскольку оба используют gradual typing, нужно тщательно настроить type checker'ы на строгость (или попросить LLM правильно настроить).
В теории Rust должен быть отличным target language для LLM'ок. На практике нейронки пока не так хороши в Rust'е, как в Python/JavaScript.