Я отправил реальный PR в бразильский open-source проект в прямом эфире: как AI стал моей правой рукой при Vibe Coding
Введение
В июле 2026 года я решил провести эксперимент, который, на первый взгляд, выглядит как чистое безумие: взять открытый исходный код бразильского проекта, о котором я не знал ничего, и отправить в него полноценный Pull Request — в прямом эфире, используя только AI-инструменты в качестве ассистента. Никакого предварительного изучения кодовой базы, никакого чтения документации на португальском. Только я, мой терминал, IDE с AI-плагинами и желание доказать, что концепция "vibe coding" — не маркетинговый трюк, а реальный рабочий процесс.
Результат превзошёл ожидания: за 47 минут я не только разобрался в архитектуре проекта (библиотека для обработки естественного языка на португальском языке), но и написал, протестировал и отправил PR, который был принят мейнтейнерами через 6 часов. В этой статье я подробно разберу, как именно AI-инструменты помогли мне преодолеть языковой барьер, понять незнакомую кодовую базу и внести осмысленный вклад в open-source — и почему этот опыт кардинально меняет представление о том, кто может участвовать в разработке открытого ПО.
Что такое Vibe Coding и почему это работает
Термин "vibe coding" (кодирование по настроению или кодирование в потоке) описывает подход, при котором разработчик использует AI-ассистентов не просто для автодополнения кода, а как полноценного партнёра по разработке. В отличие от традиционного подхода, где вы сначала изучаете документацию, затем пишете код и лишь потом тестируете, vibe coding предлагает итеративный процесс с постоянной обратной связью от AI.
Ключевые принципы vibe coding:
- Непрерывное объяснение контекста — AI получает не только фрагменты кода, но и описание бизнес-логики, архитектурных решений и ожидаемого поведения.
- Итеративное уточнение — вместо того чтобы писать код идеально с первого раза, вы генерируете черновик, тестируете его, получаете feedback от AI и улучшаете.
- Мультимодальность — современные AI-модели (на 2026 год это Claude 4, GPT-5 и Gemini 3) работают не только с текстом, но и с изображениями, схемами архитектуры и даже аудиозаписями обсуждений.
По данным отчёта GitHub Octoverse 2025, проекты, использующие AI-ассистентов в процессе code review, показывают на 34% более высокую скорость принятия PR (среднее время от открытия до мёржа сократилось с 28 часов до 18.5 часов). Исследование Stack Overflow Developer Survey 2025 показало, что 68% разработчиков, регулярно использующих AI-инструменты, отмечают значительное улучшение способности работать с незнакомыми кодовыми базами.
Подготовка к эксперименту
Выбор проекта
Для эксперимента я выбрал проект PLN-BR (Processamento de Linguagem Natural Brasileiro) — библиотеку для обработки естественного языка, оптимизированную для бразильского варианта португальского языка. Проект насчитывает около 2,3 тысячи звёзд на GitHub, 47 контрибьюторов и активно развивается с 2023 года. Основной язык — Python, используются библиотеки spaCy и transformers.
Почему именно этот проект:
- Я не владею португальским языком (только базовый уровень)
- Документация написана преимущественно на португальском
- Кодовая база использует специфические для бразильского NLP паттерны
- Проект имеет активный issue tracker с меткой "good first issue"
Инструментарий
Для эксперимента я использовал:
- Cursor IDE — с AI-плагином на базе Claude 4 (поддержка контекста до 200К токенов)
- GitHub Copilot Chat — для анализа issue и генерации описаний PR
- Claude 4 (через API) — для глубокого анализа кодовой базы и генерации тестов
- DeepL API — для перевода документации с португальского на английский
Постановка задачи
Я выбрал issue #213: "Adicionar suporte para tokenização de textos jurídicos" (Добавить поддержку токенизации юридических текстов). Задача заключалась в реализации модуля для корректной токенизации юридических документов на португальском языке с учётом специфических сокращений (art., §, inc., etc.) и форматирования.
Процесс: пошаговый разбор
Шаг 1: Анализ кодовой базы с помощью AI
Первое, что я сделал — загрузил всю кодовую базу в контекст Cursor IDE и попросил AI сгенерировать архитектурную диаграмму проекта. Это заняло 3 минуты. AI проанализировал структуру директорий, импорты и основные классы, после чего выдал следующее описание:
Проект состоит из 4 основных модулей:
1. tokenizer/ — базовые токенизаторы для разных доменов
2. normalizer/ — нормализация текста (удаление акцентов, стемминг)
3. entity_extractor/ — извлечение сущностей (NER)
4. utils/ — вспомогательные функции
Токенизаторы используют паттерн Factory Method: базовый класс BaseTokenizer
с методом tokenize(), переопределяемым в подклассах.
Это сэкономило мне минимум час чтения документации. Я сразу понял, куда нужно добавлять новый код.
Шаг 2: Генерация кода на основе описания issue
Я скопировал текст issue (на португальском) и попросил Claude 4 перевести его и сгенерировать план реализации. AI не просто перевёл, но и предложил конкретную архитектуру:
"Юридические тексты на португальском содержат специфические сокращения: 'art.' (artigo), '§' (parágrafo), 'inc.' (inciso), 'caput' и т.д. Стандартный токенизатор spaCy разбивает 'art.' как два токена. Предлагаю создать класс LegalTokenizer, наследующий от BaseTokenizer, с кастомными правилами для этих сокращений."
Я попросил AI сгенерировать код. Вот что получилось (сокращённая версия):
import re
from typing import List
from .base import BaseTokenizer
class LegalTokenizer(BaseTokenizer):
"""Tokenizer especializado para textos jurídicos brasileiros."""
# Padrões para abreviações jurídicas
LEGAL_ABBREVIATIONS = {
r'art\.': 'art.',
r'§\s*\d+': None, # será processado separadamente
r'inc\.': 'inc.',
r'caput': 'caput',
r'parágrafo único': 'parágrafo único',
}
def tokenize(self, text: str) -> List[str]:
# Preservar abreviações antes da tokenização padrão
for pattern, replacement in self.LEGAL_ABBREVIATIONS.items():
text = re.sub(pattern, replacement, text)
return super().tokenize(text)
Шаг 3: Тестирование и отладка с AI
AI сгенерировал не только код, но и тесты. Я запустил их — 3 из 5 упали. Вместо того чтобы разбираться вручную, я скопировал вывод ошибок в чат Cursor и попросил AI проанализировать проблемы.
AI определил:
1. Проблема с обработкой символа '§' — он не входит в стандартную кодировку Unicode для португальского
2. Конфликт с существующим токенизатором для новостей
3. Отсутствие обработки вложенных сокращений (например, "art. 5°, inc. III")
AI предложил исправления, включая добавление Unicode-нормализации и изменение приоритета правил. После применения исправлений все 5 тестов прошли.
Шаг 4: Документация и Pull Request
Самый сложный этап — написание документации на португальском. Я использовал DeepL API для перевода английского текста, а затем попросил Claude 4 проверить его на соответствие стилю проекта. AI не только исправил грамматические ошибки, но и адаптировал терминологию под бразильский вариант (например, заменил "tokenização" на "tokenização de texto" в соответствии с конвенциями проекта).
Финальный PR включал:
- 147 строк нового кода
- 89 строк тестов
- 12 строк документации (на португальском)
- 1 обновлённый файл конфигурации
Результаты и метрики
| Метрика | Значение | Сравнение с традиционным подходом |
|---|---|---|
| Время от начала до отправки PR | 47 минут | ~4-6 часов (по оценке мейнтейнера) |
| Количество итераций с AI | 12 | N/A |
| Ошибки, найденные AI до тестов | 7 | 2-3 (при ручном код-ревью) |
| Время принятия PR мейнтейнерами | 6 часов | 24-48 часов (типичное для проекта) |
| Количество комментариев к PR | 3 | 5-10 (типичное) |
Мейнтейнер проекта, Лукас Сильвейра, прокомментировал PR: "Código limpo e bem documentado. Impressionante para um primeiro contribuidor!" (Чистый код и хорошая документация. Впечатляет для первого контрибьютора!).
Почему это работает: технический разбор
Роль контекстного окна
Современные AI-модели (Claude 4, GPT-5) поддерживают контекстное окно до 200К токенов — это примерно 150 тысяч слов или полная кодовая база среднего проекта. Это позволяет AI анализировать не только отдельные файлы, но и взаимосвязи между ними. В моём случае AI смог обнаружить, что новый токенизатор конфликтует с существующим классом NewsTokenizer, потому что оба используют один и тот же паттерн для обработки чисел.
Семантическое понимание кода
AI не просто сопоставляет строки — он понимает семантику. Когда я попросил его "добавить поддержку юридических сокращений", он не предложил тупой regex-замены, а создал полноценный класс с наследованием, паттернами и тестами. Это стало возможным благодаря обучению на миллионах репозиториев GitHub.
Адаптация к языковым особенностям
Бразильский португальский имеет существенные отличия от европейского: использование "você" вместо "tu", другая пунктуация, специфические юридические термины. AI, обученный на мультиязычных данных, корректно обработал эти нюансы — например, различил "art." как сокращение от "artigo" (статья закона) и "art." как часть названия (Artur).
Практические рекомендации для vibe coding в open source
1. Начинайте с маленьких задач
Ищите issues с метками "good first issue", "help wanted" или "easy". На GitHub таких задач более 40% от всех открытых issues. AI способен справиться с ними за 15-30 минут.
2. Используйте AI для анализа кодовой базы
Перед тем как писать код, потратьте 5 минут на то, чтобы AI сгенерировал архитектурную диаграмму и описал зависимости. Это предотвратит 80% конфликтов.
3. Не доверяйте AI-коду слепо
Всегда запускайте тесты. В моём случае AI сгенерировал код, который не проходил 3 из 5 тестов. AI отлично пишет черновики, но финальная верификация — за человеком.
4. Используйте AI для перевода документации
Многие open-source проекты имеют документацию на национальных языках. AI-переводчики (DeepL, Claude) справляются с технической документацией на уровне C1-C2, что достаточно для принятия PR.
5. Документируйте процесс
Записывайте свои сессии vibe coding. Это не только помогает другим учиться, но и создаёт контент для вашего портфолио.
Ограничения и риски
Vibe coding — не серебряная пуля. Вот что важно понимать:
- AI не понимает бизнес-контекст — он может написать технически правильный код, который не решает реальную проблему. Всегда проверяйте соответствие требованиям issue.
- Проблемы с лицензиями — AI может генерировать код, похожий на существующие решения с другими лицензиями. Проверяйте оригинальность.
- Зависимость от модели — разные AI-модели показывают разное качество. Claude 4 лучше справляется с анализом кода, GPT-5 — с генерацией тестов.
- Языковой барьер — хотя AI хорошо переводит, специфические культурные и юридические термины могут быть искажены.
Будущее vibe coding в open source
К 2026 году мы наблюдаем несколько трендов:
-
AI-native open source проекты — проекты, где AI используется не только для написания кода, но и для code review, triage issues и генерации документации. Пример — проект LangChain, где более 30% PR проходят через AI-ревью.
-
Автоматические контрибьюторы — AI-агенты, которые самостоятельно находят issues, анализируют их и отправляют PR. GitHub уже тестирует такую функцию в бета-версии.
-
Мультиязычные проекты — AI снижает барьер входа для разработчиков, не владеющих английским. Проекты на португальском, испанском, японском получают больше контрибьютеров.
По данным исследования Linux Foundation за 2025 год, проекты, внедрившие AI-ассистентов для контрибьюторов, показали рост числа новых участников на 47% и сокращение времени первого PR на 62%.
Заключение
Мой эксперимент доказал: концепция vibe coding — не хайп, а реальный рабочий процесс, который позволяет разработчикам любого уровня вносить вклад в open-source проекты, даже если они не знакомы с языком, кодовой базой или предметной областью. AI становится не просто инструментом, а полноценным партнёром, который берёт на себя рутинные задачи: анализ архитектуры, генерацию шаблонного кода, перевод документации.
Однако важно помнить: AI — это правая рука, а не голова. Финальное решение, проверка гипотез и понимание бизнес-ценности остаются за человеком. Vibe coding не отменяет необходимость учиться и понимать основы программирования — он просто ускоряет процесс и снижает порог входа.
Если вы ещё не пробовали отправить PR в open-source проект с помощью AI — сделайте это сегодня. Выберите проект, который вам интересен (даже если он на незнакомом языке), найдите issue с пометкой "good first issue" и дайте AI шанс удивить вас. Результат может изменить ваше представление о том, что значит быть разработчиком в 2026 году.
P.S. Мой PR был принят через 6 часов. Сейчас LegalTokenizer используется в продакшене как минимум двумя бразильскими legaltech-компаниями. И всё это началось с 47 минут работы с AI в прямом эфире.
Комментарии