← Назад в лабу

Чего 30 проектов с открытым кодом ждут от вклада, сделанного с помощью ИИ

coding-agentsopen-sourceai-policy

С 27 сентября по 2 октября я отправил исправления, сообщения об ошибках и комментарии в двенадцать проектов с открытым кодом. Значительную часть работы сделал агент для программирования: Claude Code воспроизводил баги, писал патчи и тесты и готовил черновики большинства текстов. Задачи выбирал я сам, все тексты читал, и с моего аккаунта ничего не уходило без моего одобрения.

По ходу дела проекты раз за разом объясняли, как они хотят, чтобы такая работа делалась. spec-kit хотел, чтобы в каждом комментарии, сгенерированном ИИ, назывались агент, модель, её настройки и объём помощи. Шаблон пул-реквеста в MLX начинается со строки, в которой галочка уже стоит: «Я понимаю, что писать описание PR с помощью ИИ строго запрещено». Поэтому 2 октября я прочитал правила участия в 30 репозиториях: в тех, куда отправлял работу, и ещё в 21, куда не отправлял.

Коротко: в 19 из 30 есть правило об ИИ, и 14 из этих 19 правил появились в 2026 году. По большинству из них за изменение отвечает тот, кто его присылает. Пятнадцать просят сказать, что вы использовали ИИ, и десять хотят, чтобы описание, комментарии или сообщение коммита писал человек, а не модель. Трейлер коммита, который агенты для программирования добавляют по умолчанию, одни из этих проектов требуют, а другие запрещают.

Что я прочитал

Выборка не случайная. Девять из 30 — проекты, в которые я отправлял работу на той неделе: MLX, spec-kit, huggingface_hub, codebase-memory-mcp, Deskflow, agent-framework, awslabs/mcp, kaggle-cli и avoid-ai-writing. Остальные 21 — проекты из области ИИ-инструментов, инструментов для разработчиков и инфраструктуры, среди них Docling, garak, TypeScript, Rust, Node.js и Kubernetes. Ещё три проекта, куда я отправлял работу (copilot-cli, PartCrafter и ltx-2-mlx), в эти 30 не входят, и ни в одном из них я не нашёл правила об ИИ.

В каждом репозитории я прочитал CONTRIBUTING, шаблоны пул-реквестов и issue, AGENTS.md и CLAUDE.md, кодекс поведения, а также руководства и вики-страницы, на которые ссылаются эти файлы. Всё это я читал в ветке по умолчанию по состоянию на 2 октября 2026 года. Каждая цитата ниже ведёт на свою строку в том коммите, который я читал, так что ссылка покажет, что было в файле в тот день, даже когда файл изменится. Цитаты я перевёл на русский, а каждая ссылка открывает исходную строку на английском. Чтобы датировать правило, я искал в истории его файла первый коммит, в котором оно есть.

У кого есть правило

У 19 из 30 есть правило об ИИ для участников: MLX, spec-kit, TypeScript, huggingface_hub, transformers, trl, peft, LangChain, Strands Agents, MLflow, garak, codebase-memory-mcp, Deskflow, workers-sdk, pydantic-ai, Rust, CPython, Node.js и Kubernetes.

В девяти я такого правила не нашёл: accelerate, awslabs/mcp, kaggle-cli, Docling, BeeAI, ADK for Python, NeMo Agent Toolkit, VS Code и React. Ещё два я не стал считать. agent-framework лишь предупреждает, что из-за ИИ изменений присылают больше, поэтому ревью приходится ждать дольше, а avoid-ai-writing проверяет стиль текста, а не то, как он был создан.

Обычно правило просит сразу о нескольких вещах:

О чём просят 19 правил, по числу репозиториев: сказать, что вы использовали ИИ: 15; отвечает тот, кто присылает изменение, и он должен его понимать: 12; описание, комментарии или сообщения коммитов пишет человек: 10; правило о трейлерах коммитов: 9; никаких массовых или автоматических пул-реквестов: 7; issue или одобрение мейнтейнера до пул-реквеста: 6

Вторая полоса — моя трактовка: 12 из 19 в той или иной форме говорят, что за изменение отвечает тот, кто его присылает, и что он должен его понимать. huggingface_hub укладывается в два предложения: «Использовать ИИ в помощь при написании кода — нормально. Присылать сгенерированный ИИ мусор, который вы не можете объяснить, — нет». CPython ожидает, что авторы «смогут объяснить предложенные изменения своими словами», а Strands Agents говорит участникам: «автор вашего пул-реквеста — вы, а не ваш агент».

Когда они появились

Первым был CPython: в октябре 2024 года в его руководстве для разработчиков появилась короткая страница. В 2025 году за ним последовали четыре проекта: spec-kit, LangChain, Kubernetes и MLflow. Остальные 14 правил появились в 2026 году, семь из них с июня. codebase-memory-mcp добавил своё правило за одиннадцать дней до того, как я его прочитал.

Когда каждый из 19 репозиториев с правилом об ИИ для участников впервые его добавил, по полугодиям. Июль–декабрь 2024 года: CPython. Январь–июнь 2025 года: ни одного. Июль–декабрь 2025 года: spec-kit, LangChain, Kubernetes и MLflow. Январь–июнь 2026 года: Deskflow, transformers, trl, TypeScript, pydantic-ai, garak, huggingface_hub, peft и Strands Agents. Июль–сентябрь 2026 года: workers-sdk, Rust, Node.js, MLX и codebase-memory-mcp

Файлы всё ещё меняются. В 16 из 19 файл с правилом редактировали в сентябре или в первые два дня октября, хотя не каждая из этих правок затрагивала текст об ИИ.

Сказать, что помогал ИИ

Пометка об ИИ — самое частое правило, и проекты расходятся в том, насколько подробной она должна быть. Kubernetes хватает одного предложения: в его руководстве сказано, что «достаточно» добавить в описание фразу «Этот PR частично написан с помощью генеративного ИИ». TypeScript без такой пометки закрывает PR: «Если ваш PR выглядит написанным ИИ, а вы не добавили эту пометку, ваш PR закроют без ревью». spec-kit хочет, чтобы агент, модель, настройки и объём помощи были названы в пул-реквесте, ещё раз в каждом комментарии, сгенерированном ИИ, и в виде трейлера Assisted-by: в каждом коммите, который написал агент.

Два проекта уместили то, что стоит на кону, в одну строку. codebase-memory-mcp: «Пометку об ИИ вкладу никогда не ставят в вину. В вину ставят, если это выясняется позже». Deskflow: «Нечестность насчёт использования ИИ во вкладе приведёт к бану в проекте».

CPython просит меньше остальных: «Упоминание об использовании ИИ-инструментов в описании PR приветствуется, но не обязательно».

Текст пишет человек

Десять проектов разрешают модели помогать с кодом, но хотят, чтобы текст писал человек. Строже всех Rust: «Описания PR, созданные LLM, запрещены. Комментарии на GitHub, созданные LLM, запрещены». То же с коммитами: «Сообщения коммитов должны писать вы, а не ваша LLM».

Kubernetes и Node.js проводят границу на этапе ревью. Kubernetes: «Отвечая на замечания ревьюеров, вы должны делать это, не полагаясь на ИИ-инструменты». Node.js: ответы на замечания «нельзя автоматизировать с помощью ИИ-инструментов».

Другие встраивают это в шаблоны. У MLX есть строка, процитированная выше, и такая же для issue. В шаблоне пул-реквеста Strands Agents есть раздел «Human Overview» (обзор от человека), который «ИИ-агент НЕ ДОЛЖЕН заполнять». Шаблон LangChain предупреждает: «Если вы вставите сюда большое описание, явно сгенерированное ИИ, ваш PR могут ПРОИГНОРИРОВАТЬ или ЗАКРЫТЬ!»

Точные строки из трёх шаблонов пул-реквестов. ml-explore/mlx, .github/pull_request_template.md, строки 1 и 2: «☑️ Я понимаю, что писать описание PR с помощью ИИ строго запрещено» и «Пометка об использовании ИИ:». strands-agents/harness-sdk, .github/PULL_REQUEST_TEMPLATE.md, строки с 1 по 3: «## Human Overview», затем комментарий: «Если черновик этого PR написал ИИ-агент, человек должен дать здесь короткий обзор своими словами. ИИ-агент НЕ ДОЛЖЕН заполнять этот раздел. См. team/AI_USAGE_POLICY.md. (50 слов)». langchain-ai/langchain, .github/PULL_REQUEST_TEMPLATE.md, строка 11: «Если вы вставите сюда большое описание, явно сгенерированное ИИ, ваш PR могут ПРОИГНОРИРОВАТЬ или ЗАКРЫТЬ!»

Без массовых PR, и сначала спросить

Семь проектов запрещают отправлять работу массово или автоматически. TypeScript описывает, что именно он не принимает: «схемы работы, при которых оператор направляет автономного агента на GitHub, поручает ему генерировать патчи по множеству не связанных между собой issue и пересылает результат нам в виде пул-реквестов». Руководство LangChain предлагает проверку, которая подходит для любого вклада: «Если на создание пул-реквеста уходит меньше усилий, чем мейнтейнерам потребуется на его ревью, такой вклад присылать не следует».

Шесть хотят одобрения до пул-реквеста. В peft это комментарий мейнтейнера с текстом @peft-triage approved. В Rust изменение, созданное LLM, нужно предварительно согласовать, то есть «ревьюер заранее сообщил, что готов проверить PR, созданный LLM».

Три проекта отказывают новичкам, которые работают с агентами. transformers просит, «чтобы те, кто вносит вклад впервые, не создавали issue и PR с помощью агентов для кода», а trl «не будет рассматривать PR, полностью сгенерированные ИИ, от тех, кто вносит вклад впервые». Node.js просит новых участников «избегать ИИ-агентов во взаимодействии с проектом» и запрещает исправлять с помощью ИИ issue с меткой «good first issue»: такие issue «задуманы, чтобы с кодовой базой знакомились новые участники-люди, а не ИИ».

Rust к тому же ограничивает долю такой работы: «Если в 6-недельном окне больше половины влитых PR созданы LLM, мы запрещаем вливать новые PR, созданные LLM, пока снова не опустимся ниже 50 %, причём пауза длится не меньше 10 дней».

Трейлер, по которому проекты расходятся

Агенты для программирования часто подписывают свою работу. Claude Code, например, ставит в каждый коммит трейлер Co-Authored-By: Claude …, а в описание пул-реквеста добавляет строку «Generated with Claude Code», если ему этого не запретить. Правило о таких трейлерах есть у девяти проектов, и эти правила смотрят в противоположные стороны:

Что 9 из 30 репозиториев говорят о трейлерах с ИИ-соавтором. Обязательно: MLflow (Co-Authored-By: Claude для изменений Claude Code), garak (Co-authored-by с названием ИИ-инструмента), spec-kit (Assisted-by с агентом и моделью, причём трейлеры, которые добавляет инструмент, сохраняются), Node.js (Assisted-by с именем агента). Запрещено: Kubernetes (ИИ-соавторы, assisted-by и похожие трейлеры), Rust (трейлеры Co-Authored-By), pydantic-ai (Claude в соавторах), Deskflow (теги соавторства для LLM), Node.js (собственные Co-authored-by или Signed-off-by агента). Разрешено: codebase-memory-mcp

Источники: MLflow, garak, spec-kit, Node.js, Kubernetes, Rust, pydantic-ai, Deskflow и codebase-memory-mcp.

Kubernetes: «Не допускается указывать ИИ-инструменты в соавторах, подписывать коммиты совместно с ИИ-инструментом или использовать трейлеры коммитов assisted-by, co-developed и подобные». pydantic-ai говорит это в файле, который Claude Code загружает в начале сессии: «Никогда не добавляй себя (Claude) в соавторы коммитов». Руководство Rust относит обе строки по умолчанию к плохим примерам пометки об ИИ: 🤖 Generated with Claude Code и Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>.

Выходит, трейлер по умолчанию MLflow требует, а в Kubernetes, Rust и pydantic-ai он нарушает правила. Нет настройки, которая подошла бы везде. Агенту нужно прочитать правила репозитория до первого коммита в нём, и человеку, который этого агента запускает, тоже.

Правила, написанные для агента

Часть этих правил обращается к агенту напрямую, в AGENTS.md или CLAUDE.md, то есть в файлах, которые агенты для программирования читают, когда начинают работу в репозитории. Вот что они ему говорят:

Эти правила работают, только если агент читает файл и следует ему.

Что стало с моей работой

Правило об ИИ есть у пяти из двенадцати: MLX, spec-kit, huggingface_hub, codebase-memory-mcp и Deskflow. В huggingface_hub я только открыл issue, а правило там касается пул-реквестов. В MLX я сам написал описание пул-реквеста и сообщение коммита, как требуют его правила, и в описании сказано, что сделал агент. В моём комментарии в spec-kit есть полная пометка, которую просит spec-kit, а в codebase-memory-mcp та одна строка, которую просит он, стоит в issue, в пул-реквесте и в каждом комментарии. Два моих ответа в codebase-memory-mcp ушли 28 сентября без этой строки, через неделю после того, как проект добавил правило; я добавил её 1 октября. Deskflow просит пометку в пул-реквестах. Мой комментарий там, черновик которого написал агент, ушёл без неё; я добавил строку 3 октября.

Ни в одном из двух комментариев, с которыми закрыли мои PR, ИИ не упоминается. agent-framework закрыл мой PR, потому что в более старом открытом PR было то же исправление, и я нашёл бы его, если бы поискал, прежде чем писать свой. Мейнтейнер MLX оценивал сам подход.

Что я изменил

Ограничения

Это опыт одного аккаунта за шесть дней. Эти 30 репозиториев выбрал я, и выборка смещена в сторону ИИ-инструментов, где правила встречаются чаще. Категории — мои собственные метки, и одно правило часто подходит под несколько. Всё прочитано 2 октября 2026 года, а в 16 из 19 файлы с правилами менялись за предыдущий месяц, так что часть написанного скоро устареет. Закреплённые ссылки показывают, что было в каждом файле в тот день.

Все 106 цитат, подсчёты и скрипт, который сверяет каждую цитату с её файлом, лежат в nefayran/oss-ai-rules.

Черновик этой заметки написан с помощью Claude Code (Claude Opus 5.5), который также собрал файлы с правилами и сверил с ними каждую цитату.