Команда разработчиков перешла на подход AI-Native: вместо ручного написания кода задачи выполняет автономный ИИ-агент Claude Code, работающий в терминале. Разработчик теперь задаёт архитектурные границы и правила, а агент пишет синтаксис и сам запускает тесты.

Чтобы ИИ не придумывал лишнего, проект описывают через API-First: файл openapi.yaml служит жёстким техническим заданием. В нём вручную заданы пути, DTO, обязательные поля и ограничения, например что age — это integer с minimum 18. По этой спецификации агент генерирует контроллеры, модели и валидацию.

Правила архитектуры переносят из внешних вики прямо в репозиторий, чтобы ИИ учитывал их в каждом запросе. Это файлы инструкций в корне проекта, словарь терминов и заметки об архитектурных решениях. Например, файл о выборе Redis не даёт агенту по своей инициативе добавить в проект Memcached.

Для ИИ предпочтителен строго типизированный и скучный стек: C# или Go, где компилятор ловит ошибки на сборке. Паттерн CQRS позволяет агенту генерировать изолированные обработчики вместо рефакторинга монолитных сервисов, а DevContainers дают ему изолированную среду с базами данных.

В типовой задаче разработчик просит реализовать эндпоинт по openapi.yaml, написать миграцию для Postgres и покрыть код юнит-тестами. Агент сканирует слои проекта, генерирует файлы и запускает тесты. Если тест упал из-за забытой зависимости, он читает ошибку, добавляет её и повторяет сборку — на ревью приходит рабочий код.

Тесты также переданы агенту: он пишет юнит-тесты и интеграционные с Testcontainers, поднимая реальный Docker с Postgres и прогоняя SQL-запросы. За старшими разработчиками остаются проектирование домена, работа с базами и производительностью, отказоустойчивость и безопасность — там ИИ чаще ошибается.

По мнению авторов, ИИ может захардкодить секреты, пропустить проверку прав пользователя на ресурс (IDOR) или инъекцию. Поэтому SQL-миграции предлагают ревьюить особенно внимательно, а настройку Circuit Breaker, таймаутов, идемпотентности ключей и ретраев оставлять людям.