Я отправил реальный PR в бразильский open-source проект в прямом эфире: как AI стал моей правой рукой при Vibe Coding

Я отправил реальный 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:

  1. Непрерывное объяснение контекста — AI получает не только фрагменты кода, но и описание бизнес-логики, архитектурных решений и ожидаемого поведения.
  2. Итеративное уточнение — вместо того чтобы писать код идеально с первого раза, вы генерируете черновик, тестируете его, получаете feedback от AI и улучшаете.
  3. Мультимодальность — современные 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 году мы наблюдаем несколько трендов:

  1. AI-native open source проекты — проекты, где AI используется не только для написания кода, но и для code review, triage issues и генерации документации. Пример — проект LangChain, где более 30% PR проходят через AI-ревью.

  2. Автоматические контрибьюторы — AI-агенты, которые самостоятельно находят issues, анализируют их и отправляют PR. GitHub уже тестирует такую функцию в бета-версии.

  3. Мультиязычные проекты — 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 в прямом эфире.

← Все статьи

Комментарии