Почему этот тест важен
Разработчики ИИ-ассистентов часто позволяют командам просто закинуть файл с «правилами» в репозиторий, ожидая, что модель будет следовать его директивам в каждом запросе. На практике модель может вообще не увидеть этот файл или увидеть его, но проигнорировать содержимое. Недавний эксперимент с Claude Code выявил обе проблемы. Инструмент незаметно проигнорировал файл AGENTS.md размером 72 КБ; когда тот же файл был переименован в CLAUDE.md, ассистент загрузил его, что увеличило количество токенов в каждом запросе. Этот дополнительный бюджет токенов увеличивает задержку и стоимость, а также может привести к превышению лимита модели.
Разработчики, которые полагают, что «файл существует» означает «модель следует правилам», рискуют столкнуться со скрытой неэффективностью и непредсказуемыми результатами. Трехэтапный тест заставляет получить конкретные доказательства на каждом этапе: конфигурация, загрузка и полезность.
Три вопроса, которые стоит задать
- Настроен — Находится ли файл там, где его ищет ассистент? Разные инструменты используют жестко заданные пути или соглашения об именах файлов; несоответствие означает, что файл никогда не попадет в конвейер промптов.
- Загружен — Предоставляет ли ассистент какие-либо доказательства получения файла? Хеш-сумма может подтвердить идентичность файла на диске, но только след доставки (например, строка в логе или изменение количества токенов) доказывает, что модель действительно его «увидела».
- Полезен — Улучшает ли наличие файла результат выполнения задачи? Загруженный файл, который расходует токены, но оставляет результат неизменным, — это чистый убыток.
Проведение теста
Процедура намеренно минималистична, чтобы ее можно было повторить на любой платформе.
Создайте заметное правило — Напишите простую, наблюдаемую инструкцию. Например: «Перед редактированием перечисли ровно два файла». Эффект правила можно проверить в ответе ассистента.
Проверьте версию инструмента и модель — Откройте новую сессию, запишите строку версии и идентификатор модели. Разные версии могут использовать разные имена файлов для распознавания.
Выполните два запуска Запуск А: Используйте имя файла, которое инструмент не распознает (например, AGENTS.md). Запуск Б: Используйте нативное имя файла инструмента (например, CLAUDE.md).
Зафиксируйте:
- Хеш-сумму исходного файла (чтобы доказать, что содержимое на диске не изменилось).
- Точный использованный путь.
- Любые свидетельства загрузки файла в логах ассистента (увеличение количества токенов, явное сообщение «loaded X.md» и т. д.).
- Количество токенов для каждого запроса.
- Результат задачи (вывел ли ассистент ровно два файла?).
Если в Запуске Б видно, что правило соблюдается, а количество токенов увеличивается на ожидаемую величину, значит, файл и загружен, и полезен. Если правило игнорируется, несмотря на рост количества токенов, это означает, что файл считывается, но парсинг промпта моделью отбрасывает инструкцию. В этом случае добавление текста в файл не поможет; вместо этого перенесите правило в жестко заданный программный шлюз или тестовый каркас.
Что говорят данные
Случай с Claude Code продемонстрировал резкий разрыв между конфигурацией и загрузкой. Файл размером 72 КБ существовал, имел правильный хеш и был синхронизирован с репозиторием, однако ассистент к нему никогда не обращался. Переименование файла в нативный CLAUDE.md спровоцировало загрузку, но также добавило существенные накладные расходы в токенах. Каждый лишний токен потребляет вычислительные циклы и может привести к превышению лимитов запросов (rate limits).
Трехэтапный тест выявляет такие скрытые издержки до того, как они станут препятствием для работы в продакшене. Фиксируя дельту токенов, команды могут решить, перевешивает ли польза от правила его цену.
Вывод
Никогда не предполагайте, что файл с правилами работает только потому, что он находится в репозитории. Используйте трехэтапный тест — настроить, загрузить, доказать полезность, — чтобы превратить это предположение в измеримые доказательства. Если проверка показывает, что файл является лишь «поглотителем токенов», вынесите логику из промпта в детерминированный шлюз. Результатом станет более легкий, быстрый и предсказуемый рабочий процесс разработки с ИИ.
