Мейнтейнер open-source библиотеки react-native-tdlib — нативного моста между React Native и мессенджерным движком TDLib — столкнулся с нарастающим потоком PR, которые выглядели как чистый вывод ИИ-агента: без понимания контекста, без тестирования на реальном устройстве, без объяснений по существу. Переписка с авторами таких PR оказалась бессмысленной: люди за ними не понимали, что именно написали.

Первый очевидный вариант — запрет на сгенерированный код в CONTRIBUTING — упёрся в неразрешимую проблему доказательства. «Чую, тут пахнет Claude Code» — не аргумент для публичного спора в комментариях к PR. Решение нашлось в другом месте.

AGENTS.md — это файл-инструкция для ИИ-агентов, аналог README, но адресованный не людям, а инструментам. Формат разработала OpenAI для своего Codex CLI летом 2025 года, а в конце того же года передала под нейтральное управление Linux Foundation. Сегодня его читают практически все основные агентные инструменты: Codex, Claude Code, Cursor, Copilot, Gemini CLI. Ключевое свойство — агент обрабатывает AGENTS.md до того, как начинает планировать изменения в репозитории. Это означает, что любые инструкции в файле гарантированно попадают к агенту раньше, чем он касается кода.

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

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

`- [ ] This PR was written with meaningful ИИ agent assistance (see AGENTS.md)`

Механизм работает на асимметрии поведения: агент, читающий AGENTS.md, честно ставит галочку — он следует инструкции. Человек, писавший код руками, чекбокс просто не замечает или оставляет пустым. Человек, запустивший агента и не следивший за процессом, тоже не замечает — потому что не вникал.

Дальше в дело вступает GitHub Action. Обнаружив отмеченный пункт, бот вешает на PR лейбл maybe automated, оставляет комментарий и запускает таймер: PR закроется автоматически через три дня, если автор не подтвердит авторство. Подтверждение намеренно сделано нетривиальным: требуются логи реального прогона изменённого метода в example-приложении на живой TDLib-сессии — отдельно на iOS и отдельно на Android. Для react-native-tdlib это принципиально: библиотека работает с нативными модулями, и стандартные тесты нативного слоя не затрагивают. Сгенерировать правдоподобные device-логи двух платформ без реального запуска — задача нетривиальная.

Реальный случай подтвердил схему. В одном из PR агент в точности выполнил инструкцию из AGENTS.md и отметил чекбокс — автор, судя по всему, в процесс не вникал. Бот повесил лейбл и запросил логи. Автор закрыл PR сам, не дожидаясь истечения таймера.

За схемой стоит более широкая проблема. Накидать PR по чужим репозиториям, чтобы набить профиль на GitHub и сформировать видимость вклада в open-source — сценарий, который с развитием агентных инструментов становится всё проще. Мейнтейнер прямо говорит: его не раздражает использование ИИ само по себе — он сам активно применяет агентов. Проблема в отсутствии человека, который понимает написанное и готов нести за него ответственность. AGENTS.md в этой конфигурации не запрещает ИИ-помощь, но требует доказательства реального участия: покажи, что запускал собственный код.