Т-Банк научил AI-агента писать iOS unit-тесты через AGENTS.md и SKILL.md

iOS-разработчик Т-Банка Артем Житко рассказал на Habr, как команда заставила LLM-агента писать unit-тесты по правилам проекта. Первые попытки с ChatLLM провалились: код не компилировался, модель придумывала несуществующие Mock-объекты, игнорировала архитектурные соглашения и брала не те тестовые утилиты. Вместо новых промптов инженеры собрали систему правил на базе файлов AGENTS.md и SKILL.md. Генерация тестов превратилась из разового запроса в воспроизводимый процесс. Вывод команды: качество правил сегодня важнее выбора самой умной модели.

AI-обработка оригинала Habr: Т-Банк; редакция Hamidun News
Т-Банк научил AI-агента писать iOS unit-тесты через AGENTS.md и SKILL.md
Источник: Habr: Т-Банк. Коллаж: Hamidun News.
Слушать статью
Паспорт материала и цифры
ПараметрДанные
ПервоисточникHabr: Т-Банк ↗
Главный редактор
Ключевой факт #1код не компилировался;
Ключевой факт #2модель придумывала Mock-объекты, которых в проекте нет;
Ключевой факт #3архитектурные соглашения команды игнорировались;

Команда iOS-разработки Т-Банка описала на Habr, как научила LLM-агента писать unit-тесты в стиле проекта: с реальными Mock-объектами, правильными утилитами и кодом, который собирается с первого раза. Автор материала, iOS-разработчик Артем Житко, рассказывает, что подбор промптов не помог. Помогла система правил на файлах AGENTS.md и SKILL.md.

Что сломалось в первой попытке

Тесты обычно пишут в конце задачи, когда логика готова и мотивации уже мало. Это очевидный кандидат на передачу агенту. Т-Банк попробовал поручить его ChatLLM и получил типичный набор дефектов:

  • код не компилировался;
  • модель придумывала Mock-объекты, которых в проекте нет;
  • архитектурные соглашения команды игнорировались;
  • использовались не те тестовые утилиты, которые принято применять в кодовой базе.

Все четыре пункта имеют общий корень. Модель не видела проект изнутри. Она знает, как выглядят тесты на Swift вообще, но не знает, как называются ваши хелперы, где лежат заглушки и какой слой зависимостей принято подменять. Поэтому она достраивает недостающее правдоподобной выдумкой. Для кода это худший вариант: выдумка выглядит убедительно, а ломается только на сборке.

Правила вместо промптов

Команда сделала вывод, что причина в отсутствии контекста, а не в слабости модели, и вынесла знания о проекте в файлы. AGENTS.md служит общей инструкцией для агента в репозитории: структура, соглашения, обязательные практики. SKILL.md описывает конкретное умение, здесь это написание тестов: порядок действий, какие утилиты брать, как называть кейсы, что считать готовым результатом.

Главное изменение связано с самим подходом. Промпт живёт в чьей-то голове или чате, и результат зависит от того, кто и как его написал. Файл правил лежит в репозитории, ревьюится, версионируется и работает одинаково для каждого разработчика. Генерация тестов из разового запроса превращается в воспроизводимый инженерный процесс, как пишет сам автор.

Ключевые факты из анонса

  • Платформа: iOS, unit-тесты. - Исходная модель: ChatLLM, результат без контекста признан непригодным. - Инструменты: AGENTS.md и SKILL.md. - Тезис команды: хорошие правила важнее выбора самой умной модели.

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

Как применить у себя

Если хотите повторить подход, начните с анализа ошибок, а не с написания правил. Соберите 10–20 тестов, которые агент сгенерировал неудачно, и разметьте причины: выдуманный класс, неверная утилита, нарушенная архитектура. Каждая повторяющаяся причина превращается в конкретное правило.

В AGENTS.md кладите то, что верно для всего репозитория: структуру модулей, соглашения об именовании, запреты. В отдельный навык выносите узкую процедуру, например написание тестов, и приводите там один-два эталонных примера из реального кода. Явно перечислите существующие Mock-объекты и тестовые утилиты и запретите создавать новые без запроса. Это прямой ответ на главную болезнь, описанную командой.

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

Сюжет

Вопросы и ответы по материалу

Что известно по теме: что сломалось в первой попытке?

Тесты обычно пишут в конце задачи, когда логика готова и мотивации уже мало. Это очевидный кандидат на передачу агенту. Т-Банк попробовал поручить его ChatLLM и получил типичный набор дефектов: код не компилировался; модель придумывала Mock-объекты, которых в проекте нет; архитектурные соглашения команды игнорировались; использовались не те тестовые утилиты, которые принято применять в кодовой базе. Все четыре пункта имеют общий корень. Модель не видела проект изнутри. Она знает, как выглядят тесты на Swift вообще, но не знает, как называются ваши хелперы, где лежат заглушк

Что известно по теме: правила вместо промптов?

Команда сделала вывод, что причина в отсутствии контекста, а не в слабости модели, и вынесла знания о проекте в файлы. AGENTS.md служит общей инструкцией для агента в репозитории: структура, соглашения, обязательные практики. SKILL.md описывает конкретное умение, здесь это написание тестов: порядок действий, какие утилиты брать, как называть кейсы, что считать готовым результатом. Главное изменение связано с самим подходом. Промпт живёт в чьей-то голове или чате, и результат зависит от того, кто и как его написал. Файл правил лежит в репозитории, ревьюится, версионируется и

Что известно по теме: ключевые факты из анонса?

Платформа: iOS, unit-тесты. - Исходная модель: ChatLLM, результат без контекста признан непригодным. - Инструменты: AGENTS.md и SKILL.md. - Тезис команды: хорошие правила важнее выбора самой умной модели. Тезис про правила и модель лучше читать с оговоркой. Это вывод одной команды на одной кодовой базе, и пока без опубликованных цифр. Но он согласуется с тем, что многие замечают при работе с кодовыми агентами: рост качества часто дают описание окружения и проверка результата, а не смена модели на более дорогую.

ЖХ
Жемал Хамидун — CPO Alpina Digital, продакт-менеджер AlpinaGPT. Делает AI-продукты с 2019 года. Hamidun News — pet project, который вырос в production-агрегатор с 6000+ читателей.
✦ Практика · Hamidun Academy

Соберите рабочего ИИ-агента или сервис своими руками без ручного кода

В Академии Жемала Хамидуна (academy.hamidun.com) открыт бесплатный 72-часовой тест-драйв: интерактивные скетч-уроки по Claude Code и Cursor, живой Tech Radar и готовые шаблоны агентов.

Открыть 72ч бесплатный доступ →Интенсив по Вайб-кодингу
Что вы думаете?
Загружаем комментарии…