Успешные вклады в open source проекты давно стали своего рода валютой. GitHub всячески поощряет это: показывает аватары контрибьюторов на страницах репозиториев, отображает активность подписчикам в лентах, а на графике профиля отмечает вклад по дням. Потенциальные наниматели обращают на это внимание, рекрутёры используют эти сигналы для отбора кандидатов. Если разработчик — действующий или начинающий — ищет работу, настройка этих метрик часто играет ему на руку.

Как мейнтейнер open source проектов, за последний год стало заметно, насколько изменился характер внешних контрибьюций. Вместо issues чаще приходят пул-реквесты. Если issue всё же поступает, к ней часто прилагается AI-сгенерированный анализ. Отчётов об уязвимостях стало заметно больше, чем раньше, и нередко они сразу сопровождаются AI-сгенерированными предложениями по исправлению.

Нет сомнений, что часть этих вкладов исходит от людей, которым действительно интересен проект, но циничная часть сознания подсказывает: многие просто поняли, что AI можно использовать для игры с метриками GitHub в свою пользу. Теперь достаточно попросить Claude составить список интересных open source проектов, затем найти в них проблемы, а затем открыть пул-реквесты с исправлениями. Даже не нужно пользоваться проектом или заботиться о нём — легко создать у окружающих иллюзию заботы, обнаруженной проблемы или потраченного на исправление времени. В интернете никто не знает, что ты собака, но с помощью LLM можно без всяких усилий преувеличить свои человеческие способности в профиле GitHub.

Недавно контрибьютор, у которого почти не было активности на GitHub с конца 2018 года до пары недель назад и который никогда прежде не взаимодействовал с проектом, открыл три отдельных пул-реквеста с исправлением опечаток и грамматических ошибок в комментариях к коду. Claude сделал правки, судя по всему написал описания PR, подписал коммиты от имени пользователя и заботливо добавил себя в соавторы в трейлерах commit-сообщений. Возможно, модель даже сама открыла эти PR — кто знает. Было бы интересно узнать, был ли запрос сформулирован как «найди проблемы» в целом или конкретно указывал искать ошибки в правописании и грамматике.

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

Все три PR были закрыты без комментариев.

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

Та же картина наблюдается и с отчётами об уязвимостях. Традиционно CVE засчитываются тому, кто их обнаружил, но все недавние отчёты явно были сгенерированы AI. Исправления в области безопасности, конечно, всегда важны, но снова возникает вопрос: заботятся ли люди о самом исправлении или просто ищут лёгкий способ получить упоминание в CVE. В последнее время оценка серьёзности таких отчётов стала намного более избирательной, а в некоторых случаях выдача CVE-уведомлений для низкосерьёзных проблем отклоняется. Есть отдельные мысли о том, что практика приватного раскрытия уязвимостей в принципе угасает — возможно, об этом стоит написать отдельно, — но усилия, требуемые для координации приватных фиксов, уведомлений о раскрытии и релизов, настолько существенны, что заставляют быть избирательнее.

В конечном счёте open source строится на доверии. Значение имеет не то, сколько пул-реквестов можно выжать из LLM, и не количество накопленных CVE, а то, удаётся ли сделать проект реально лучше. Если хочется внести вклад в open source проект — стоит делать это потому, что он действительно важен. Если же цель — очередной зелёный квадратик или бейдж контрибьютора, лучше поискать другое место.